以下に示すように、私は継続的に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