スレッド プールの技術サンプル
[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]
このサンプルでは、ThreadPool クラスを使用する例を示します。 このサンプルでは、共通言語ランタイムで管理されるスレッド プール内のスレッドによって実行される非同期メソッド呼び出しをキューに置く例を示します。
このサンプルの使用方法の詳細については、次のトピックを参照してください。
コマンド プロンプトを使用してサンプルをビルドするには
コマンド プロンプト ウィンドウを開き、サンプルの使用言語に対応するサブディレクトリに移動します。
使用するプログラミング言語に応じて、コマンド ラインで「msbuild PoolsCS.sln」または「msbuild PoolsVB.sln」と入力します。
Visual Studio を使用してサンプルをビルドするには
Windows エクスプローラを開き、このサンプルの使用言語に対応するサブディレクトリに移動します。
使用するプログラミング言語に応じて、PoolsCS.sln のアイコンまたは PoolsVB.sln のアイコンをダブルクリックして、そのファイルを Visual Studio で開きます。
[ビルド] メニューの [ソリューションのビルド] をクリックします。
サンプルを実行するには
コマンド プロンプトを使用して、ビルドした実行可能ファイルが格納されているディレクトリに移動します。
コマンド ラインで「AsyncMethod.exe」と入力します。
注意
このサンプルでは、コンソール アプリケーションをビルドします。出力を表示するには、これをコマンド プロンプトで実行する必要があります。
解説
このサンプルでは、非同期メソッド呼び出しの管理にキューを使用します。 呼び出されたメソッドは "何らかの処理を実行" してから、その処理が完了したことを示すイベントを設定します。 メイン スレッドはこのイベントの発生まで待機してから終了します。
以下の項目に、このサンプルで使用されているクラスおよび技術について簡単に説明します。
スレッド処理
- ThreadPool マネージ コードを記述する場合、できるだけ QueueUserWorkItem メソッドを使用して非同期メソッド呼び出しを実装することをお勧めします。 このサンプルでは、この型を簡単に使用して、非同期動作を実行する例を示します。
スレッドの同期
- AutoResetEvent このサンプルのメイン スレッドは AutoResetEvent オブジェクトが非同期メソッドにより設定されるまで待機します。 非同期メソッドは、処理を完了すると Set メソッドを呼び出します。
デリゲート
- WaitCallback ThreadPool クラスが使用するタイプ セーフなコールバック メソッドを作成するために使用します。
スレッドの同期の詳細については、ソース コード ファイルのコメントを参照してください。