我正在使用NetworkStream.BeginRead异步读取Socket.
但是,如果你真的用一个网络流包裹网络流,它会快得多BufferedStream.
我的问题:NetworkStream.BeginRead内部调用Socket.BeginReceive和整个堆栈的异步IO(Windows上的CompletionPorts等).BufferedStream在中间是否会发生同样的事情?
BufferedStream 不支持高效的异步 IO。它使用从 Stream 类继承的默认实现。它将在线程池上发出同步 IO。所以你不会让 IO 完成端口这样做。您需要自己完成这项工作。如果您使用 C# 5,您几乎可以重用 BufferedStream 的实现,并尝试在其上使用 async 和 waits。