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