我有这个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+"\r\n");
streamWriter.Flush();
}
如何为Read()方法设置超时? 感谢
答案 0 :(得分:20)
如果是System.IO.StreamReader
,请将其设置在BaseStream
:
streamReader.BaseStream.ReadTimeout = 2000; //milliseconds, so 2 seconds
答案 1 :(得分:6)
您需要处理基础流。因此,如果您使用的是TcpClient,则只需设置ReceiveTimeout:
即可ReceiveTimeout属性确定了该时间量 Read方法将阻塞,直到它能够接收数据。这一次是 以毫秒为单位。如果超时在Read之前到期 成功完成后,TcpClient抛出IOException。没有 默认情况下超时。
tcpClient.ReceiveTimeout = 5000;