C#Stream.Read超时
我有这个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()方法的超时? 谢谢
如果这是System.IO.StreamReader
,则在BaseStream
上设置它:
streamReader.BaseStream.ReadTimeout = 2000; //milliseconds, so 2 seconds
您需要处理基础流。 因此,如果您使用的是TcpClient,则只需设置ReceiveTimeout:
ReceiveTimeout属性确定Read方法在能够接收数据之前将阻塞的时间量。 此时间以毫秒为单位。 如果超时在Read成功完成之前到期,则TcpClient将抛出IOException。 默认情况下没有超时。
tcpClient.ReceiveTimeout = 5000;