System.Threading Namespace

System.Threading 名前空間には、マルチスレッド プログラミングを実現するクラスとインターフェイスが用意されています。 The System.Threading namespace provides classes and interfaces that enable multithreaded programming. この名前空間には、スレッドの動作やデータへのアクセスを同期するためのクラス (MutexMonitorInterlockedAutoResetEvent など) のほか、システムが提供するスレッド プールを使用するための ThreadPool クラス、スレッド プール スレッドでコールバック メソッドを実行するための Timer クラスも用意されています。 In addition to classes for synchronizing thread activities and access to data (Mutex, Monitor, Interlocked, AutoResetEvent, and so on), this namespace includes a ThreadPool class that allows you to use a pool of system-supplied threads, and a Timer class that executes callback methods on thread pool threads.

クラス

AbandonedMutexException

スレッドが、別のスレッドが解放せずに終了することによって放棄した Mutex オブジェクトを取得したときにスローされる例外。The exception that is thrown when one thread acquires a Mutex object that another thread has abandoned by exiting without releasing it.

AsyncLocal<T>

非同期メソッドなど、特定の非同期制御フローに対してローカルなアンビエント データを表します。Represents ambient data that is local to a given asynchronous control flow, such as an asynchronous method.

AutoResetEvent

通知を受けたときに、単一の待機中のスレッドを解放した後、自動的にリセットされるスレッドの同期イベントを表します。Represents a thread synchronization event that, when signaled, resets automatically after releasing a single waiting thread. このクラスは継承できません。This class cannot be inherited.

Barrier

複数のタスクが、複数のフェーズを通じて 1 つのアルゴリズムで並行して協調的に実行できるようにします。Enables multiple tasks to cooperatively work on an algorithm in parallel through multiple phases.

BarrierPostPhaseException

Barrier のフェーズ後アクションに失敗したときにスローされる例外。The exception that is thrown when the post-phase action of a Barrier fails

CancellationTokenSource

CancellationToken を取り消すことをそれに通知します。Signals to a CancellationToken that it should be canceled.

CompressedStack

現在のスレッドで圧縮スタックの設定とキャプチャを行うメソッドを提供します。Provides methods for setting and capturing the compressed stack on the current thread. このクラスは継承できません。This class cannot be inherited.

CountdownEvent

カウントが 0 になったときに通知される同期プリミティブを表します。Represents a synchronization primitive that is signaled when its count reaches zero.

EventWaitHandle

スレッドの同期イベントを表します。Represents a thread synchronization event.

ExecutionContext

現在のスレッドの実行コンテキストを管理します。Manages the execution context for the current thread. このクラスは継承できません。This class cannot be inherited.

HostExecutionContext

スレッド間でホストの実行コンテキストをカプセル化して反映させます。Encapsulates and propagates the host execution context across threads.

HostExecutionContextManager

共通言語ランタイム ホストが実行コンテキストのフロー (移行) に参加するための機能を提供します。Provides the functionality that allows a common language runtime host to participate in the flow, or migration, of the execution context.

Interlocked

複数のスレッドで共有される変数にアトミックの操作を提供します。Provides atomic operations for variables that are shared by multiple threads.

LazyInitializer

遅延初期化ルーチンを提供します。Provides lazy initialization routines.

LockRecursionException

再帰的にロックに入る処理が、ロックの再帰ポリシーと互換性がない場合にスローされる例外。The exception that is thrown when recursive entry into a lock is not compatible with the recursion policy for the lock.

ManualResetEvent

通知時に手動でリセットする必要のあるスレッド同期イベントを表します。Represents a thread synchronization event that, when signaled, must be reset manually. このクラスは継承できません。This class cannot be inherited.

ManualResetEventSlim

通知時に手動でリセットする必要のあるスレッド同期イベントを表します。Represents a thread synchronization event that, when signaled, must be reset manually. このクラスは ManualResetEvent の軽量版です。This class is a lightweight alternative to ManualResetEvent.

Monitor

オブジェクトへのアクセスを同期する機構を提供します。Provides a mechanism that synchronizes access to objects.

Mutex

同期プリミティブは、プロセス間の同期にも使用できます。A synchronization primitive that can also be used for interprocess synchronization.

Overlapped

Overlapped インスタンスから NativeOverlapped 構造体に情報を転送するメソッドを含む、Win32 OVERLAPPED 構造体のマネージド表現を提供します。Provides a managed representation of a Win32 OVERLAPPED structure, including methods to transfer information from an Overlapped instance to a NativeOverlapped structure.

PreAllocatedOverlapped

ネイティブの重複 I/O 操作に事前に割り当てられている状態を表します。Represents pre-allocated state for native overlapped I/O operations.

ReaderWriterLock

単一ライターと複数リーダーをサポートするロックを定義します。Defines a lock that supports single writers and multiple readers.

ReaderWriterLockSlim

リソースへのアクセス管理に使用するロックを表し、複数のスレッドによる読み取りや排他アクセスでの書き込みを許可します。Represents a lock that is used to manage access to a resource, allowing multiple threads for reading or exclusive access for writing.

RegisteredWaitHandle

RegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean) を呼び出すときに登録されたハンドルを表します。Represents a handle that has been registered when calling RegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean). このクラスは継承できません。This class cannot be inherited.

Semaphore

リソースまたはリソースのプールに同時にアクセスできるスレッドの数を制限します。Limits the number of threads that can access a resource or pool of resources concurrently.

SemaphoreFullException

カウントが最大値に達しているセマフォで、Release メソッドが呼び出された場合にスローされる例外。The exception that is thrown when the Release method is called on a semaphore whose count is already at the maximum.

SemaphoreSlim

リソースまたはリソースのプールに同時にアクセスできるスレッドの数を制限する Semaphore の軽量版を表します。Represents a lightweight alternative to Semaphore that limits the number of threads that can access a resource or pool of resources concurrently.

SynchronizationContext

同期コンテキストをさまざまな同期モデルに反映するための基本機能を提供します。Provides the basic functionality for propagating a synchronization context in various synchronization models.

SynchronizationLockException

指定した Monitor でロックを所有していることが呼び出し元の条件となるメソッドを、そのロックを所有していない呼び出し元が呼び出した場合にスローされる例外。The exception that is thrown when a method requires the caller to own the lock on a given Monitor, and the method is invoked by a caller that does not own that lock.

Thread

スレッドを作成および制御し、その優先順位の設定およびステータスの取得を実行します。Creates and controls a thread, sets its priority, and gets its status.

ThreadAbortException

Abort(Object) メソッドが呼び出されるときにスローされる例外。The exception that is thrown when a call is made to the Abort(Object) method. このクラスは継承できません。This class cannot be inherited.

ThreadExceptionEventArgs

ThreadException イベントのデータを提供します。Provides data for the ThreadException event.

ThreadingAclExtensions
ThreadInterruptedException

Thread が待機状態のときに中断されるとスローされる例外。The exception that is thrown when a Thread is interrupted while it is in a waiting state.

ThreadLocal<T>

データのスレッド ローカル ストレージを提供します。Provides thread-local storage of data.

ThreadPool

タスクの実行、作業項目の送信、非同期 I/O の処理、他のスレッドの代理で行う待機、およびタイマーの処理に使用できるスレッドのプールを提供します。Provides a pool of threads that can be used to execute tasks, post work items, process asynchronous I/O, wait on behalf of other threads, and process timers.

ThreadPoolBoundHandle

システムのスレッド プールにバインドし、低レベルのコンポーネントが非同期 I/O 操作の通知を受信できるようにする I/O ハンドルを表します。Represents an I/O handle that is bound to the system thread pool and enables low-level components to receive notifications for asynchronous I/O operations.

ThreadStartException

基になるオペレーティング システムのスレッドが起動された後、スレッドでユーザー コードを実行する準備が完了する前にマネージド スレッドでエラーが発生したときにスローされる例外。The exception that is thrown when a failure occurs in a managed thread after the underlying operating system thread has been started, but before the thread is ready to execute user code.

ThreadStateException

メソッドの呼び出しで Thread が無効な ThreadState である場合は、例外がスローされます。The exception that is thrown when a Thread is in an invalid ThreadState for the method call.

Timeout

無限タイムアウト間隔を指定する定数を格納します。Contains constants that specify infinite time-out intervals. このクラスは継承できません。This class cannot be inherited.

Timer

指定した間隔で、スレッド プール スレッドでメソッドを実行するための機構を提供します。Provides a mechanism for executing a method on a thread pool thread at specified intervals. このクラスは継承できません。This class cannot be inherited.

Volatile

不揮発性メモリの操作を実行するためのメソッドが含まれます。Contains methods for performing volatile memory operations.

WaitHandle

共有リソースへの排他アクセスの待機に使用するオペレーティング システム固有のオブジェクトをカプセル化します。Encapsulates operating system-specific objects that wait for exclusive access to shared resources.

WaitHandleCannotBeOpenedException

この例外は、存在しないシステムのミューテックス、セマフォ、またはイベント待機ハンドルを開こうとした場合にスローされます。The exception that is thrown when an attempt is made to open a system mutex, semaphore, or event wait handle that does not exist.

WaitHandleExtensions

待機ハンドルのセーフ ハンドルを処理するための便利なメソッドを提供します。Provides convenience methods to for working with a safe handle for a wait handle.

構造体

AsyncFlowControl

スレッド間の実行コンテキストの移行 (フロー) を復元する機能を提供します。Provides the functionality to restore the migration, or flow, of the execution context between threads.

AsyncLocalValueChangedArgs<T>

変更通知のために登録する AsyncLocal<T> インスタンスに対するデータ変更情報を提供するクラス。The class that provides data change information to AsyncLocal<T> instances that register for change notifications.

CancellationToken

操作を取り消す通知を配信します。Propagates notification that operations should be canceled.

CancellationTokenRegistration

CancellationToken に登録されているコールバック デリゲートを表します。Represents a callback delegate that has been registered with a CancellationToken.

LockCookie

単一ライター セマンティクスと複数リーダー セマンティクスを実装するロックを定義します。Defines the lock that implements single-writer/multiple-reader semantics. これは値型です。This is a value type.

NativeOverlapped

アンマネージ コードから見えていて、OVERLAPPED 構造体の末尾にいくつかの予約フィールドを付加したものと同じレイアウトになる明示的レイアウトを提供します。Provides an explicit layout that is visible from unmanaged code and that will have the same layout as the Win32 OVERLAPPED structure with additional reserved fields at the end.

SpinLock

ロックが使用可能になるまで繰り返しチェックするループ内で、ロックを取得しようとするスレッドが待機する相互排他ロック プリミティブを提供します。Provides a mutual exclusion lock primitive where a thread trying to acquire the lock waits in a loop repeatedly checking until the lock becomes available.

SpinWait

スピンベースの待機のサポートを提供します。Provides support for spin-based waiting.

インターフェイス

IThreadPoolWorkItem

列挙型

ApartmentState

Thread のアパートメント状態を指定します。Specifies the apartment state of a Thread.

EventResetMode

シグナルを受信した後で EventWaitHandle が自動的にリセットされるか、または手動でリセットされるかを示します。Indicates whether an EventWaitHandle is reset automatically or manually after receiving a signal.

LazyThreadSafetyMode

Lazy<T> インスタンスが複数のスレッド間でアクセスを同期する方法を指定します。Specifies how a Lazy<T> instance synchronizes access among multiple threads.

LockRecursionPolicy

同じスレッドが複数回ロックに入ることができるかどうかを指定します。Specifies whether a lock can be entered multiple times by the same thread.

ThreadPriority

Thread のスケジューリング優先順位を指定します。Specifies the scheduling priority of a Thread.

ThreadState

Thread の実行状態を指定します。Specifies the execution states of a Thread.

代理人

ContextCallback

新しいコンテキスト内で呼び出されるメソッドを表します。Represents a method to be called within a new context.

IOCompletionCallback

I/O 操作がスレッド プールで完了すると、エラー コード、バイト数、および重複値型を受け取ります。Receives the error code, number of bytes, and overlapped value type when an I/O operation completes on the thread pool.

ParameterizedThreadStart

Thread で実行するメソッドを表します。Represents the method that executes on a Thread.

SendOrPostCallback

メッセージを同期コンテキストにディスパッチするときに呼び出すメソッドを表します。Represents a method to be called when a message is to be dispatched to a synchronization context.

ThreadExceptionEventHandler

ApplicationThreadException イベントを処理するメソッドを表します。Represents the method that will handle the ThreadException event of an Application.

ThreadStart

Thread で実行するメソッドを表します。Represents the method that executes on a Thread.

TimerCallback

Timer からの呼び出しを処理するメソッドを表します。Represents the method that handles calls from a Timer.

WaitCallback

スレッド プール スレッドが実行するコールバック メソッドを表します。Represents a callback method to be executed by a thread pool thread.

WaitOrTimerCallback

WaitHandle がシグナル通知されたとき、またはタイムアウトしたときに呼び出されるメソッドを表します。Represents a method to be called when a WaitHandle is signaled or times out.