Thread クラス

定義

スレッドを作成および制御し、その優先順位を設定し、その状態を取得します。

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

注釈

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

コンストラクター

名前 説明
Thread(ParameterizedThreadStart, Int32)

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

Thread(ParameterizedThreadStart)

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

Thread(ThreadStart, Int32)

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

Thread(ThreadStart)

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

プロパティ

名前 説明
ApartmentState
古い.

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

CurrentContext

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

CurrentCulture

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

CurrentPrincipal

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

CurrentThread

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

CurrentUICulture

実行時にカルチャ固有のリソースを検索するために Resource Manager によって使用される現在のカルチャを取得または設定します。

ExecutionContext

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

IsAlive

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

IsBackground

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

IsThreadPoolThread

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

ManagedThreadId

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

Name

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

Priority

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

ThreadState

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

メソッド

名前 説明
Abort()

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

Abort(Object)

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

AllocateDataSlot()

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

AllocateNamedDataSlot(String)

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

BeginCriticalRegion()

スレッドの中止またはハンドルされない例外の影響がアプリケーション ドメイン内の他のタスクを危険にさらす可能性があるコード領域を入力しようとしていることをホストに通知します。

BeginThreadAffinity()

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

DisableComObjectEagerCleanup()

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

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)

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

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)

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

適用対象

スレッド セーフ

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

こちらもご覧ください