Могу ли я определить, будет ли чтение одного байта от SecureStream
? Основной поток - это NetworkStream
, который имеет свойство DataAvailable
, но я ожидаю, что SecureStream
должен будет правильно байт для работы, поэтому я не думаю, что могу полагаться на базовый поток DataAvailable
.Можно ли определить, заблокирует ли чтение SecureStream?
В качестве альтернативы, существует ли способ выполнить команду Read
, которая никогда не будет заблокирована? Я почти уверен, что нет; Я всегда ненавидел это в отношении API Stream
, но, может быть, я чего-то не хватает?
Почему: У нас есть реализация TCP-сервера с высоко оптимизированными путями для обработки запросов. В частности, исходный код всегда использовал BeginRead
для каждого запроса, но я обнаружил, что заменяя его Read
всякий раз, когда данные уже были доступны (что происходит все время с короткими запросами), наша максимальная пропускная способность увеличилась более чем на 20%. Я хотел бы сделать то же самое для варианта SSL этого кода.
О, конечно, не похоже, что это на 50 мс медленнее, нет. Но это делает разницу между 4000 и 5000 запросами в секунду. В этом масштабе, я думаю, понятно, что он немного медленнее. Кроме того, есть ли у вас конкретное предложение о том, сколько «нескольких»? –