System.Threading 名前空間
2013/03/11
System.Threading 名前空間には、マルチスレッド プログラミングを実現するクラスとインターフェイスが用意されています。この名前空間には、スレッドの動作やデータへのアクセスを同期するためのクラス (Monitor、Interlocked、AutoResetEvent など) のほか、システムが提供するスレッド プールを使用するための ThreadPool クラス、スレッド プール スレッドでコールバック メソッドを実行するための Timer クラスも用意されています。System.Threading 名前空間に用意されている機能に加えて、BackgroundWorker クラスでは、メイン アプリケーション スレッドへのアクセスをイベント ベースで簡単に同期できます。
| クラス | 説明 | |
|---|---|---|
![]() | AbandonedMutexException | スレッドが、別のスレッドが解放せずに終了することによって放棄した Mutex オブジェクトを取得したときにスローされる例外。 |
![]() | AutoResetEvent | イベントが発生したことを待機中のスレッドに通知します。このクラスは継承できません。 |
![]() | Barrier | 複数のタスクが、複数のフェーズを通じて 1 つのアルゴリズムで並行して協調的に動作できるようにします。 |
![]() | BarrierPostPhaseException | Barrier のフェーズ後アクションに失敗したときにスローされる例外。 |
![]() | CancellationTokenSource | CancellationToken を取り消すことをそれに通知します。 |
![]() | CountdownEvent | カウントが 0 になったときに通知される同期プリミティブを表します。 |
![]() | EventWaitHandle | スレッドの同期イベントを表します。 |
![]() | Interlocked | 複数のスレッドで共有される変数に分割不可能な操作を提供します。 |
![]() | LazyInitializer | 限定的な初期化ルーチンを提供します。 |
![]() | LockRecursionException | 再帰的にロックに入る処理が、ロックの再帰ポリシーと互換性がない場合にスローされる例外です。 |
![]() | ManualResetEvent | イベントが発生したことを、1 つ以上の待機中のスレッドに通知します。このクラスは継承できません。 |
![]() | ManualResetEventSlim | ManualResetEvent の規模を小さくしたバージョンを提供します。 |
![]() | Monitor | オブジェクトへのアクセスを同期する機構を提供します。 |
![]() | Mutex | 同期プリミティブは、プロセス間の同期にも使用できます。 |
![]() | Overlapped | Overlapped インスタンスからの情報を NativeOverlapped 構造体に転送するためのメソッドを含む、Win32 OVERLAPPED 構造体のマネージ表現を提供します。 |
![]() | ReaderWriterLockSlim | リソースへのアクセス管理に使用するロックを表し、複数のスレッドによる読み取りや排他アクセスでの書き込みを実現します。 |
![]() | RegisteredWaitHandle | RegisterWaitForSingleObject を呼び出すときに登録されたハンドルを表します。このクラスは継承できません。 |
![]() | Semaphore | リソースまたはリソースのプールに同時にアクセスできるスレッドの数を制限します。 |
![]() | SemaphoreFullException | カウントが既に最大値であるセマフォに対して Semaphore.Release メソッドが呼び出された場合にスローされる例外。 |
![]() | SemaphoreSlim | リソースまたはリソースのプールに同時にアクセスできるスレッドの数を制限する Semaphore の軽量版です。 |
![]() | SynchronizationContext | 同期コンテキストをさまざまな同期モデルに反映させるための基本機能を提供します。 |
![]() | SynchronizationLockException | 指定した Monitor でロックを所有していることが呼び出し元の条件となるメソッドを、そのロックを所有していない呼び出し元が呼び出した場合にスローされる例外です。 |
![]() | Thread | スレッドを作成して制御し、状態を取得します。 |
![]() | ThreadAbortException | Abort メソッドが呼び出されるときにスローされる例外。このクラスは継承できません。 |
![]() | ThreadLocal<T> | データのスレッド ローカル ストレージを提供します。 |
![]() | ThreadPool | 作業項目のポスト、非同期 I/O の処理、他のスレッドの代わりの待機、およびタイマーの処理に使用できるスレッドのプールを提供します。 |
![]() | ThreadStartException | 基になるオペレーティング システムのスレッドが起動された後、スレッドでユーザー コードを実行する準備が完了する前にマネージ スレッドでエラーが発生したときにスローされる例外。 |
![]() | ThreadStateException | メソッドの呼び出しで Thread が無効な ThreadState である場合は、例外がスローされます。 |
![]() | Timeout | 無期限の時間を指定するために使用される定数を含みます。このクラスは継承できません。 |
![]() | Timer | 指定した間隔でメソッドを実行するための機構を提供します。 このクラスは継承できません。 |
![]() | Volatile | 揮発性メモリの操作を実行するメソッドを含みます。 |
![]() | WaitHandle | 共有リソースへの排他アクセスの待機に使用するオペレーティング システム固有のオブジェクトをカプセル化します。 |
![]() | WaitHandleCannotBeOpenedException | 存在しないシステム ミューテックスまたはシステム セマフォを開こうとしたときにスローされる例外。 |
| 構造体 | 説明 | |
|---|---|---|
![]() | CancellationToken | 操作を取り消す通知を配信します。 |
![]() | CancellationTokenRegistration | CancellationToken に登録されているコールバック デリゲートを表します。 |
![]() | NativeOverlapped | アンマネージ コードから表示される明示的なレイアウトを提供します。これは、末尾に予約済みフィールドを追加した Win32 OVERLAPPED 構造体のレイアウトと同じです。 |
![]() | SpinLock | ロックが使用可能になるまで、ロックを取得しようとするスレッドがループの繰り返しチェック内で待機する相互排他ロック プリミティブを提供します。 |
![]() | SpinWait | スピンベースの待機のサポートを提供します。 |
| デリゲート | 説明 | |
|---|---|---|
![]() | IOCompletionCallback | I/O 操作がスレッド プールで完了すると、エラー コード、バイト数、および重複値型を受け取ります。 |
![]() | ParameterizedThreadStart | Thread で実行するメソッドを表します。 |
![]() | SendOrPostCallback | メッセージを同期コンテキストにディスパッチするときに呼び出すメソッドを表します。 |
![]() | ThreadStart | Thread で実行するメソッドを表します。 |
![]() | TimerCallback | Timer からの呼び出しを処理するメソッドを表します。 |
![]() | WaitCallback | スレッド プール スレッドが実行するコールバック メソッドを表します。 |
![]() | WaitOrTimerCallback | WaitHandle がシグナル通知されたとき、またはタイムアウトしたときに呼び出されるメソッドを表します。 |
| 列挙体 | 説明 | |
|---|---|---|
![]() | EventResetMode | シグナルを受信した後で EventWaitHandle が自動的にリセットされるか、または手動でリセットされるかを示します。 |
![]() | LazyThreadSafetyMode | System.Lazy<T> インスタンスが複数のスレッド間のアクセスを同期する方法を指定します。 |
![]() | LockRecursionPolicy | 同じスレッドが複数回ロックに入れるかどうかを指定します。 |
![]() | ThreadState | Thread の実行状態を指定します。 |



