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