如果我不断地调用C#异步方法如下图所示:套接字编程:发送和读取的异步方法可以确保数据的顺序吗?
socket.BeginSend(data1, 0, data1.Length, 0,
new AsyncCallback(SendCallback1), handler);
socket.BeginSend(data2, 0, data2.Length, 0,
new AsyncCallback(SendCallback2), handler);
异步方式,可保证数据的顺序?
支持异步操作的其他网络库是否考虑过该问题?
它们如何实现以保证内部异步操作中的数据顺序?
在链接的第二个答案,它说:“你可以排队在同一时间多个BeginSends你并不需要锁定。” – atomd
@atomd:你是对的。我的意思是,如果你想对通过不同线程发送的消息发出一个命令,你将不得不实现一些同步机制。在你的情况下,从同一个线程调用BeginSend,它将不需要同步,因为消息将以正确的顺序堆积起来。 – Damiox