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;