我有这个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()方法设置超时?由于
如果这是System.IO.StreamReader
,那么在BaseStream
上设置它:
streamReader.BaseStream.ReadTimeout = 2000; //milliseconds, so 2 seconds
您需要处理底层流。因此,如果您使用的是TcpClient,您可以简单地设置ReceiveTimeout:
ReceiveTimeout属性决定了Read方法将阻塞,直到它能够接收数据。这次是以毫秒为单位。如果在Read之前超时成功完成后,TcpClient抛出IOException。没有默认为超时。
tcpClient.ReceiveTimeout = 5000;