Я использую NetworkStream & TcpClient для асинхронного получения использования данных BeginRead. Я должен применить тайм-аут к этой операции, такой, что после указанного количества времени чтение будет прервано.
Насколько я могу сказать, это не поддерживается на NetworkStream или TcpClient - существует свойство ReceiveTimeout, но это, кажется, только относится к синхронному эквиваленту - 'Чтение'.
Даже базовый класс Сокета, кажется, не поддерживает тайм-ауты в своем методе BeginReceive.
Я искал по этой проблеме и единственному предлагаемому решению, которое я видел, должен настроить другой фоновый поток для отмены операции, если это не завершается в течение периода тайм-аута. Это походит на ужасный взлом. Конечно, существует лучший путь?