|
3
|
| jassuncao · 技术社区 · 15 年前 |
|
1
3
不确定我是否正确理解了这个问题。但这是正常的行为。BeginSend的意思是“如果 你必须 ". 不必经常这样。在许多情况下,发送可以同步完成,因为内核内存池中有足够的空间来存储字节。它只需要一个非常快的内存到内存的拷贝,重叠的I/O传输立即完成。 另一个很好的例子是FileStream.BeginWrite(),它写入文件系统缓存。通常您必须先写入超过1 GB的数据,然后才能填满缓存并开始占用时间。 blogged about this recently . 从本机API的角度来看,这里使用的就是这个。我不认为你有什么真正的问题,只是Windows的工作效率。 |
|
2
1
因为你不该这么做? Begin/End异步约定是成对使用的,这个示例可能太简单,无法说明为什么要这样做,但事实是,您不需要这样做,也可以这样做。
我不认为使用异步IO的意义,如果你最终还是阻止了。。。 |
|
|
3
1
将第二个参数设置为true表示您不想等待。将第二个参数设置为false,您将看到所需的结果。 通过将第二个参数设置为true,基本上就是说“abort”。 |