System.Threading 名前空間には、マルチスレッド プログラミングを実現するクラスとインターフェイスが用意されています。この名前空間には、スレッドの動作やデータへのアクセスを同期するためのクラス (Mutex 、 Monitor 、 Interlocked 、 AutoResetEvent など) のほか、システムが提供するスレッド プールを使用するための ThreadPool クラス、スレッド プール スレッドでコールバック メソッドを実行するための Timer クラスも用意されています。
クラス
| クラス | 説明 |
|---|---|
| AutoResetEvent | イベントが発生したことを待機中のスレッドに通知します。このクラスは継承できません。 |
| Interlocked | 複数のスレッドで共有される変数に分割不可能な操作を提供します。 |
| ManualResetEvent | イベントが発生したことを、1 つ以上の待機中のスレッドに通知します。このクラスは継承できません。 |
| Monitor | オブジェクトへのアクセスを同期する機構を提供します。 |
| Mutex | 同期プリミティブは、プロセス間の同期にも使用できます。 |
| ReaderWriterLock | 単一ライタと複数リーダーをサポートするロックを定義します。 |
| RegisteredWaitHandle | RegisterWaitForSingleObject を呼び出すときに登録されたハンドルを表します。このクラスは継承できません。 |
| SynchronizationLockException | 指定した Monitor でロックを所有していることが呼び出し元の条件となるメソッドを、そのロックを所有していない呼び出し元が呼び出した場合にスローされる例外です。 |
| Thread | スレッドを作成および制御し、そのスレッドの優先順位の設定およびステータスの取得を行います。 |
| ThreadAbortException | Abort メソッドが呼び出されるときにスローされる例外。このクラスは継承できません。 |
| ThreadExceptionEventArgs | ThreadException イベントのデータを提供します。 |
| ThreadInterruptedException | Thread が待機状態のときに中断されるとスローされる例外。 |
| ThreadPool | 作業項目の送信、非同期 I/O の処理、他のスレッドの代理で行う待機、およびタイマの処理に使用できるスレッドのプールを提供します。 |
| ThreadStateException | メソッドの呼び出しで Thread が無効な ThreadState である場合は、例外がスローされます。 |
| Timeout | 無期限の時間を指定するために使用される定数を含みます。このクラスは継承できません。 |
| Timer | 指定した間隔でメソッドを実行するための機構を提供します。このクラスは継承できません。 |
| WaitHandle | 共有リソースへの排他アクセスの待機に使用するオペレーティング システム固有のオブジェクトをカプセル化します。 |
構造体
| 構造体 | 説明 |
|---|---|
| LockCookie | 単一ライタ セマンティクスと複数リーダー セマンティクスを実装するロックを定義します。これは値型です。 |
| NativeOverlapped | アンマネージ コードから表示される明示的なレイアウトを提供します。これは、末尾に予約済みフィールドを追加した Win32 OVERLAPPED 構造体のレイアウトと同じです。 |
デリゲート
| デリゲート | 説明 |
|---|---|
| IOCompletionCallback | I/O 操作がスレッド プールで完了すると、エラー コード、バイト数、および重複値型を受け取ります。 |
| ThreadExceptionEventHandler | Application の ThreadException イベントを処理するメソッドを表します。 |
| ThreadStart | Thread で実行するメソッドを表します。 |
| TimerCallback | Timer からの呼び出しを処理するメソッドを表します。 |
| WaitCallback | スレッド プール スレッドが実行するコールバック メソッドを表します。 |
| WaitOrTimerCallback | WaitHandle がシグナル通知されたとき、またはタイムアウトしたときに呼び出されるメソッドを表します。 |
列挙体
| 列挙体 | 説明 |
|---|---|
| ApartmentState | Thread のアパートメント状態を指定します。 |
| ThreadPriority | Thread のスケジューリング優先順位を指定します。 |
| ThreadState | Thread の実行状態を指定します。 |