C# StreamReader.Read()是块方法吗?

C# StreamReader.Read()是块方法吗?,c#,streamreader,networkstream,C#,Streamreader,Networkstream,StreamReader.Read()是一种阻塞方法,特别是当应用于网络流时?是-它阻塞,直到满足以下条件之一: 读取一个字符 到达底层流的末尾 底层流引发异常 是-它会阻塞,直到满足以下条件之一: 读取一个字符 到达底层流的末尾 底层流引发异常 如果这是您的意思,那么它是同步的;如果您使用的是.net 4.5,那么您可以使用ReadAync()如果这是您的意思,那么它是同步的;如果您使用的是.net 4.5,那么您可以使用ReadAync()文档说明“ReadBlock是Read的阻塞版本

StreamReader.Read()
是一种阻塞方法,特别是当应用于
网络流时?

是-它阻塞,直到满足以下条件之一:

  • 读取一个字符
  • 到达底层流的末尾
  • 底层流引发异常

是-它会阻塞,直到满足以下条件之一:

  • 读取一个字符
  • 到达底层流的末尾
  • 底层流引发异常

如果这是您的意思,那么它是同步的;如果您使用的是.net 4.5,那么您可以使用
ReadAync()
如果这是您的意思,那么它是同步的;如果您使用的是.net 4.5,那么您可以使用
ReadAync()
文档说明“ReadBlock是Read的阻塞版本”。这意味着Read是非阻塞的。也许“阻塞”的定义存在问题@SimonSvensson:我相信这个版本只会在读取的字符数达到要求的字符数或到达流端时返回,也就是说,当可能有更多数据到来时,它不会返回“部分”结果。文档说明“ReadBlock是read的阻塞版本”这意味着读取是非阻塞的。也许“阻塞”的定义存在问题@SimonSvensson:我相信这是一个只有在读取了尽可能多的字符或到达流结束时才会返回的版本,也就是说,当可能有更多的数据到来时,它不会返回“部分”结果。