我使用NetworkStream.BeginRead从Socket异步读取数据。
但是,如果您实际上用BufferedStream包装网络流,则速度会快得多。
我的问题是:NetworkStream.BeginRead在内部调用Socket.BeginReceive和整个异步IO堆栈( Windows上的CompletionPorts等等)。当BufferedStream处于中间位置时,也会发生同样的情况吗?
发布于 2012-03-19 07:07:30
BufferedStream不支持高效异步IO。它使用从Stream类继承的默认实现。它将在线程池上发出同步IO。因此,这样做不会得到IO完成端口。您需要自己完成这项工作。如果你使用的是BufferedStream 5,你几乎可以重用BufferedStream的实现,并尝试使用C#来等待它。
https://stackoverflow.com/questions/9746355
复制相似问题