スレッド処理オブジェクトと機能
.NET Framework には、マルチスレッド アプリケーションの作成と管理に役立つ多くのオブジェクトが用意されています。マネージ スレッドは、Thread クラスによって表されます。ThreadPool クラスを使用すると、マルチスレッド バックグラウンド タスクを簡単に作成し、管理できます。BackgroundWorker クラスは、ユーザー インターフェイスと対話するタスクに対して共通の機能を実行します。Timer クラスは、指定された間隔でバックグラウンド タスクを実行します。
さらに、.NET Framework Version 2.0 で導入された Semaphore クラスや EventWaitHandle クラスなど、スレッドの動作を同期するクラスも数多くあります。これらのクラスの機能については、「同期プリミティブの概要」を参照してください。
このセクションの内容
- マネージ スレッド プール
スレッドを自身で管理しなくてもスレッドにタスクの実行を要求できるようにする ThreadPool クラスについて説明します。
- タイマ
Timer を使用して、指定された時間に呼び出されるデリゲートを指定する方法を説明します。
- Monitor
メンバへのアクセスの同期、または独自のスレッド管理型の構築を Monitor クラスを使用して行う方法を説明します。
- 待機ハンドル
WaitHandle クラスについて説明します。このクラスは、イベント待機ハンドル、ミューテックス、およびセマフォ用の抽象基本クラスで、複数の同期イベントを待機できるようにします。
- EventWaitHandle、AutoResetEvent、および ManualResetEvent
通知を行ったり通知を待機したりすることによりスレッドの動作を同期するために使用するマネージ イベント待機ハンドルについて説明します。
- インタロックされた操作
Interlocked クラスを使用して値を増減し、その値を分割不可能な 1 回の操作で格納する方法を説明します。
- 読み取り/書き込みロック
Single-Writer/Multiple-Reader セマンティクスを実装するロックを定義します。
- セマフォ
Semaphore オブジェクトについて説明し、このオブジェクトを使用して、制限されたリソースへのアクセスを制御する方法を示します。
- 同期プリミティブの概要
マネージ スレッドをロックおよび同期するために用意されている .NET Framework のクラスの機能を比較します。
参照
- Thread
Thread クラスのリファレンス ドキュメントです。このクラスは、アンマネージ コードから作成されたか、マネージ アプリケーションで作成されたかにかかわらず、マネージ スレッドを表します。
- BackgroundWorker
ユーザー インターフェイスと対話し、ユーザー インターフェイス スレッドで生成されるイベントを介して通信するバックグラウンド タスクを有効にします。
関連するセクション
- 非同期ファイル I/O
非同期 I/O 完了ポートでスレッド プールを使用して、入出力操作の完了時にだけ処理を要求する方法を説明します。