ThreadState 列挙体
アセンブリ: System (system.dll 内)

Public Enumeration ThreadState

メンバ名 | 説明 | |
---|---|---|
Initialized | スレッドは初期化されたが、まだ開始していないことを示す状態。 | |
Ready | 解放されているプロセッサがないため、スレッドがプロセッサの使用を待機していることを示す状態。スレッドは、次に利用可能になるプロセッサで実行する準備が整っています。 | |
Running | スレッドが現在プロセッサを使用していることを示す状態。 | |
Standby | スレッドがすぐにプロセッサを使用することを示す状態。一度に 1 つのスレッドだけが、この状態になることができます。 | |
Terminated | スレッドが実行を終了しスレッド自身も終了したことを示す状態。 | |
Transition | スレッドが、実行前にプロセッサ以外のリソースを待機していることを示す状態。たとえば、ディスクから実行スタックのページングを待機している場合があります。 | |
Unknown | スレッドの状態が不明です。 | |
Wait | スレッドが、周辺操作の完了またはリソースの解放を待機しているために、プロセッサを使用する準備が整っていないことを示す状態。スレッドの準備が整うと、スケジュールが再設定されます。 |

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ThreadState 列挙体
この列挙体には、メンバ値のビットごとの組み合わせを可能にする FlagsAttribute 属性が含まれています。
名前空間: System.Threadingアセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ <FlagsAttribute> _ Public Enumeration ThreadState

メンバ名 | 説明 | |
---|---|---|
Aborted | スレッドが Stopped 状態です。 | |
AbortRequested | スレッド上で Thread.Abort メソッドを呼び出しますが、そのスレッドの終了を試みる保留中の System.Threading.ThreadAbortException をスレッドが受け取っていません。 | |
Background | スレッドは、フォアグラウンド スレッドではなく、バックグランド スレッドとして実行します。この状態は、Thread.IsBackground プロパティを設定して制御されます。 | |
Running | スレッドをブロックせずに起動します。保留中の ThreadAbortException もありません。 | |
Stopped | スレッドを停止します。 | |
StopRequested | スレッドの停止を要求します。これは、内部でだけ使用します。 | |
Suspended | スレッドを中断します。 | |
SuspendRequested | スレッドの中断を要求します。 | |
Unstarted | スレッド上に Thread.Start メソッドを呼び出しません。 | |
WaitSleepJoin | Wait、Sleep、または Join を呼び出すと、スレッドがブロックされます。 |

ThreadState は、スレッドに指定できるすべての実行状態のセットを定義します。スレッドは、作成されてから終了するまでの間に、少なくとも 1 つの状態になります。共通言語ランタイム内で作成されたスレッドの初期状態は Unstarted です。一方、ランタイムに外部から入ってきたスレッドは既に Running 状態になっています。Unstarted スレッドは、Start を呼び出すと、Running 状態に移行します。ThreadState 値の組み合わせがすべて有効とは限りません。たとえば、同時に Aborted 状態と Unstarted 状態になることはありません。
![]() |
---|
スレッド状態は、デバッグを行う場合に必要になることがあります。コードでは、スレッド状態を使用して、スレッドの動作を同期しないでください。 |
ThreadState | |
---|---|
Unstarted | |
Unstarted | |
WaitSleepJoin | |
WaitSleepJoin | |
WaitSleepJoin | |
SuspendRequested | |
AbortRequested | |
Stopped | |
Stopped |
上に示した状態の他に、Background 状態もあります。これは、スレッドがバックグランドとフォアグラウンドのどちらで実行されているかどうかを示す状態です。
スレッドは特定の場合に複数の状態になることがあります。たとえば、スレッドが Wait を呼び出してブロックされ、別のスレッドがそのブロックされたスレッドで Abort を呼び出すと、スレッドは同時に WaitSleepJoin の状態と AbortRequested の状態になります。この場合は、スレッドが Wait の呼び出しから戻る、または中断されるとすぐに ThreadAbortException を受け取り、アボートを開始します。
スレッドの Thread.ThreadState プロパティは、スレッドの現在の状態を提供します。アプリケーションは、ビットマスクを使用してスレッドが実行中かどうかを判断する必要があります。Running の値が 0 である場合は、C# コード ((myThread.ThreadState & (ThreadState.Stopped | ThreadState.Unstarted)) == 0 など) または Visual Basic コード ((myThread.ThreadState And (ThreadState.Stopped Or ThreadState.Unstarted)) = 0 など) を使用してスレッドが実行中かどうかをテストします。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ThreadStateのページへのリンク