В C# Поток.Чтение с таймаутом
У меня есть этот streamreader:
Boolean read = false;
while (wline!="exit")
{
while (!read || streamReader.Peek() >= 0)
{
read = true;
Console.Write((char)streamReader.Read());
}
wline = Console.ReadLine();
streamWriter.Write(wline+"rn");
streamWriter.Flush();
}
Как установить тайм-аут для метода Read ()? спасибо
2 ответов
Если это System.IO.StreamReader
, затем установите его на BaseStream
:
streamReader.BaseStream.ReadTimeout = 2000; //milliseconds, so 2 seconds
вам нужно иметь дело с базовым потоком. Таким образом, если вы используете TcpClient, вы можете просто установить ReceiveTimeout:
на ReceiveTimeout свойство определяет количество времени, которое Метод Read будет блокировать, пока он не сможет получать данные. Это время измеряется в миллисекундах. Если тайм-аут истекает до чтения успешно завершается, TcpClient создает исключение IOException. Нет тайм-аут по умолчанию.
tcpClient.ReceiveTimeout = 5000;