3

この例について質問があります: Asynchronous Client Socket。操作は非同期であり、それらはあります(beginxxx/ endxxxが表示されます) と書かれていますがManualResetEvent、サンプル コードを正しく理解していれば、次のような呼び出しが 使用されます。

  Receive(client);
  receiveDone.WaitOne();

それらが呼び出されたスレッドをブロックします。UIを備えたアプリケーションがあり、メインスレッドからその非同期ソケットコードを呼び出すと、アプリケーションがフリーズします...それとも間違っていますか? 申し訳ありませんが、メイン スレッドをフリーズすることなく、tcp 経由でいくつかのコマンドを非同期的に送受信できると思っていました。フリーズを避けるために、そのサンプルからすべてのソケット操作を呼び出す必要がありますか?

4

2 に答える 2

1

UIをブロックします。MSDN の例は非同期性を示していますが、非常に貧弱です。それも原始的。さまざまな非同期プログラミング モデルについても回答したこのトピックを参照してください。かなりの数について説明し、それらすべてへのリンクを完全な例とともに提供します。

リンク: C# でマルチスレッドを実装するにはヘルプが必要

于 2012-04-19T14:36:55.837 に答える