Send/ReceiveAsync: 调用顺序有保证吗?

Send/ReceiveAsync: is order of calls guaranteed?

我知道在带有 IOCP 的 C++ 中,当你在套接字上发出一些异步 reads/writes 时,即使在完成端口上执行它们的顺序是有序的,因为调度 worker/processing 线程可能会达到乱序处理它们(例如,第 2 个 read/write 第一个和第一个之后)。 C# 和 Send/ReceiveAsync 也是这种情况吗?我真的无法在 msdn 上找到任何关于此的信息。

谢谢。

是的。想象两个 .NET 线程 运行 两个完成回调。 OS 现在可以在第一个指令之前自由地暂停其中任何一个指令一段时间。仅对于这种现象,您 永远不会 依赖并发 IOs.

的回调调用顺序

如果您想订购,您需要自己对处理进行排序。