Thread クラス

定義

スレッドを作成および制御し、その優先順位の設定およびステータスの取得を実行します。

public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject
public ref class Thread sealed
public ref class Thread sealed : System::Runtime::InteropServices::_Thread
public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject, System::Runtime::InteropServices::_Thread
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Thread
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.InteropServices._Thread
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Runtime.InteropServices._Thread
type Thread = class
    inherit CriticalFinalizerObject
[<System.Runtime.InteropServices.ComVisible(true)>]
type Thread = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
    interface _Thread
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
    inherit CriticalFinalizerObject
    interface _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Public NotInheritable Class Thread
Public NotInheritable Class Thread
Implements _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Implements _Thread
継承
継承
Thread
属性
実装

注釈

この API の詳細については、「Thread の 補足 API 解説」を参照してください。

コンストラクター

Thread(ParameterizedThreadStart)

スレッドの開始時にオブジェクトをスレッドに渡すことを許可するデリゲートを指定して、Thread クラスの新しいインスタンスを初期化します。

Thread(ParameterizedThreadStart, Int32)

Thread クラスの新しいインスタンスを初期化して、スレッドの開始時にオブジェクトをスレッドに渡すことを許可するデリゲートとこのスレッドの最大スタック サイズを指定します。

Thread(ThreadStart)

Thread クラスの新しいインスタンスを初期化します。

Thread(ThreadStart, Int32)

Thread クラスの新しいインスタンスを初期化して、スレッドの最大スタック サイズを指定します。

プロパティ

ApartmentState
古い.
古い.

このスレッドのアパートメント状態を取得または設定します。

CurrentContext

スレッドが実行されている現在のコンテキストを取得します。

CurrentCulture

現在のスレッドのカルチャを取得または設定します。

CurrentPrincipal

ロールベースのセキュリティに関する、スレッドの現在のプリンシパルを取得または設定します。

CurrentThread

現在実行中のスレッドを取得します。

CurrentUICulture

実行時にカルチャ固有のリソースを検索するためにリソース マネージャーで使用される、現在のカルチャを取得または設定します。

ExecutionContext

現在のスレッドのさまざまなコンテキストに関する情報を格納する ExecutionContext オブジェクトを取得します。

IsAlive

現在のスレッドの実行ステータスを示す値を取得します。

IsBackground

スレッドがバックグラウンド スレッドであるかどうかを示す値を取得または設定します。

IsThreadPoolThread

スレッドがマネージド スレッド プールに所属しているかどうかを示す値を取得します。

ManagedThreadId

現在のマネージド スレッドの一意の識別子を取得します。

Name

スレッドの名前を取得または設定します。

Priority

スレッドのスケジューリング優先順位を示す値を取得または設定します。

ThreadState

現在のスレッドの状態を示す値を取得します。

メソッド

Abort()
古い.

このメソッドが呼び出された対象のスレッドで、そのスレッドの終了プロセスを開始する ThreadAbortException を発生させます。 このメソッドを呼び出すと、通常、スレッドが終了します。

Abort(Object)
古い.

このメソッドが呼び出された対象のスレッドで、スレッドの終了プロセスを開始する ThreadAbortException を発生させます。またスレッドの終了に関する例外情報も提供します。 このメソッドを呼び出すと、通常、スレッドが終了します。

AllocateDataSlot()

無名のデータ スロットをすべてのスレッドに割り当てます。 パフォーマンスを向上させるためには、ThreadStaticAttribute 属性でマークされたフィールドを代わりに使用します。

AllocateNamedDataSlot(String)

名前付きのデータ スロットをすべてのスレッドに割り当てます。 パフォーマンスを向上させるためには、ThreadStaticAttribute 属性でマークされたフィールドを代わりに使用します。

BeginCriticalRegion()

スレッドの中止または処理されない例外の影響によりアプリケーション ドメイン内の他のタスクが悪影響を受ける可能性があるコード領域に実行が入ることをホストに通知します。

BeginThreadAffinity()

マネージド コードが現在のオペレーティング システムの物理スレッドの ID に依存する命令の実行を開始することをホストに通知します。

DisableComObjectEagerCleanup()

現在のスレッドのランタイム呼び出し可能ラッパー (RCW: Runtime Callable Wrapper) の自動クリーンアップをオフにします。

EndCriticalRegion()

スレッドの中止または処理されない例外の影響が現在のタスクだけに及ぶコード領域に実行が入ることをホストに通知します。

EndThreadAffinity()

マネージド コードが現在のオペレーティング システムの物理スレッドの ID に依存する命令の実行を完了したことをホストに通知します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Finalize()

ガベージ コレクターが Thread オブジェクトを再利用しているときに、リソースが解放され、他のクリーンアップ操作が確実に実行されるようにします。

FreeNamedDataSlot(String)

プロセス内のすべてのスレッドに関して、名前とスロットの関連付けを解除します。 パフォーマンスを向上させるためには、ThreadStaticAttribute 属性でマークされたフィールドを代わりに使用します。

GetApartmentState()

アパートメント状態を示す ApartmentState 値を返します。

GetCompressedStack()
古い.
古い.

現在のスレッドのスタックをキャプチャするために使用できる CompressedStack オブジェクトを返します。

GetCurrentProcessorId()

現在のスレッドが実行されているプロセッサを示すために使用される ID を取得します。

GetData(LocalDataStoreSlot)

現在のスレッドの現在のドメイン内で指定した現在のスレッドのスロットから値を取得します。 パフォーマンスを向上させるためには、ThreadStaticAttribute 属性でマークされたフィールドを代わりに使用します。

GetDomain()

現在のスレッドが実行されている現在のドメインを返します。

GetDomainID()

一意のアプリケーション ドメイン識別子を返します。

GetHashCode()

現在のスレッドのハッシュ コードを返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetNamedDataSlot(String)

名前付きデータ スロットを検索します。 パフォーマンスを向上させるためには、ThreadStaticAttribute 属性でマークされたフィールドを代わりに使用します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
Interrupt()

WaitSleepJoin スレッド状態のスレッドを中断します。

Join()

このインスタンスが表すスレッドが終了するまで、呼び出し元のスレッドをブロックします。標準 COM および SendMessage ポンピングの実行は継続されます。

Join(Int32)

このインスタンスが表すスレッドが終了するまで、または指定された時間が経過するまで、呼び出し元のスレッドをブロックします。標準 COM/SendMessage ポンピングの実行は継続されます。

Join(TimeSpan)

このインスタンスが表すスレッドが終了するまで、または指定された時間が経過するまで、呼び出し元のスレッドをブロックします。標準 COM/SendMessage ポンピングの実行は継続されます。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MemoryBarrier()

メモリ アクセスを同期します。現在のスレッドを実行中のプロセッサは、MemoryBarrier() を呼び出す前のメモリ アクセスを MemoryBarrier() の呼び出し後のメモリ アクセスより後に実行するように命令を並べ替えることはできなくなります。

ResetAbort()
古い.

現在のスレッドに対して要求された Abort(Object) をキャンセルします。

Resume()
古い.
古い.
古い.

中断されたスレッドを再開します。

SetApartmentState(ApartmentState)

スレッドを開始する前にそのアパートメント状態を設定します。

SetCompressedStack(CompressedStack)
古い.
古い.

キャプチャした CompressedStack を現在のスレッドに適用します。

SetData(LocalDataStoreSlot, Object)

現在実行中のスレッド上にある指定されたスロット内のデータを、そのスレッドの現在のドメインに設定します。 パフォーマンスを向上させるためには、ThreadStaticAttribute 属性でマークされたフィールドを代わりに使用します。

Sleep(Int32)

指定したミリ秒数の間現在のスレッドを中断します。

Sleep(TimeSpan)

指定した時間の長さにわたって現在のスレッドを中断します。

SpinWait(Int32)

スレッドが、iterations パラメーターで定義される時間だけ待機するようにします。

Start()

オペレーティング システムによって、現在のインスタンスの状態を Running に変更します。

Start(Object)

オペレーティング システムによって現在のインスタンスの状態が Running に変更され、オプションでスレッドが実行するメソッドで使用するデータを格納するオブジェクトが提供されます。

Suspend()
古い.
古い.
古い.

スレッドを中断します。スレッドが既に中断されている場合は無効です。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
TrySetApartmentState(ApartmentState)

スレッドを開始する前にそのアパートメント状態を設定します。

UnsafeStart()

オペレーティング システムによって、現在のインスタンスの状態を Running に変更します。

UnsafeStart(Object)

オペレーティング システムによって現在のインスタンスの状態が Running に変更され、オプションでスレッドが実行するメソッドで使用するデータを格納するオブジェクトが提供されます。

VolatileRead(Byte)

フィールドの値を読み取ります。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの後に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの前へ移動できなくなります。

VolatileRead(Double)

フィールドの値を読み取ります。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの後に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの前へ移動できなくなります。

VolatileRead(Int16)

フィールドの値を読み取ります。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの後に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの前へ移動できなくなります。

VolatileRead(Int32)

フィールドの値を読み取ります。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの後に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの前へ移動できなくなります。

VolatileRead(Int64)

フィールドの値を読み取ります。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの後に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの前へ移動できなくなります。

VolatileRead(IntPtr)

フィールドの値を読み取ります。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの後に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの前へ移動できなくなります。

VolatileRead(Object)

フィールドの値を読み取ります。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの後に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの前へ移動できなくなります。

VolatileRead(SByte)

フィールドの値を読み取ります。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの後に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの前へ移動できなくなります。

VolatileRead(Single)

フィールドの値を読み取ります。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの後に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの前へ移動できなくなります。

VolatileRead(UInt16)

フィールドの値を読み取ります。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの後に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの前へ移動できなくなります。

VolatileRead(UInt32)

フィールドの値を読み取ります。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの後に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの前へ移動できなくなります。

VolatileRead(UInt64)

フィールドの値を読み取ります。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの後に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの前へ移動できなくなります。

VolatileRead(UIntPtr)

フィールドの値を読み取ります。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの後に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの前へ移動できなくなります。

VolatileWrite(Byte, Byte)

フィールドに値を書き込みます。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの前に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの後へ移動できなくなります。

VolatileWrite(Double, Double)

フィールドに値を書き込みます。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの前に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの後へ移動できなくなります。

VolatileWrite(Int16, Int16)

フィールドに値を書き込みます。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの前に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの後へ移動できなくなります。

VolatileWrite(Int32, Int32)

フィールドに値を書き込みます。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの前に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの後へ移動できなくなります。

VolatileWrite(Int64, Int64)

フィールドに値を書き込みます。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの前に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの後へ移動できなくなります。

VolatileWrite(IntPtr, IntPtr)

フィールドに値を書き込みます。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの前に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの後へ移動できなくなります。

VolatileWrite(Object, Object)

フィールドに値を書き込みます。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの前に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの後へ移動できなくなります。

VolatileWrite(SByte, SByte)

フィールドに値を書き込みます。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの前に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの後へ移動できなくなります。

VolatileWrite(Single, Single)

フィールドに値を書き込みます。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの前に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの後へ移動できなくなります。

VolatileWrite(UInt16, UInt16)

フィールドに値を書き込みます。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの前に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの後へ移動できなくなります。

VolatileWrite(UInt32, UInt32)

フィールドに値を書き込みます。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの前に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの後へ移動できなくなります。

VolatileWrite(UInt64, UInt64)

フィールドに値を書き込みます。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの前に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの後へ移動できなくなります。

VolatileWrite(UIntPtr, UIntPtr)

フィールドに値を書き込みます。 これが求められるシステムにおいて、プロセッサがメモリ操作を並べ替えるのを防止するメモリ バリアを挿入します。つまり、コード内でこのメソッドの前に読み取りまたは書き込みが配置されている場合、プロセッサはその操作をこのメソッドの後へ移動できなくなります。

Yield()

呼び出し元のスレッドから、現在のプロセッサ上で実行する準備が整っている別のスレッドに実行を切り替えます。 実行の切り替え先のスレッドは、オペレーティング システムによって選択されます。

明示的なインターフェイスの実装

_Thread.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。

_Thread.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この型情報を使用して、インターフェイスの型情報を取得できます。

_Thread.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。

_Thread.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。

適用対象

スレッド セーフ

この型はスレッド セーフです。

こちらもご覧ください