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
已淘汰.
已淘汰.

取得或設定這個執行緒的 Apartment 狀態。

CurrentContext

取得執行緒正在執行的目前內容。

CurrentCulture

取得或設定目前執行緒的文化特性 (Culture)。

CurrentPrincipal

取得或設定執行緒目前的原則 (角色架構安全性之用)。

CurrentThread

取得目前執行的執行緒。

CurrentUICulture

取得或設定資源管理員目前用以在執行階段查詢特定文化特性資源所用的文化特性。

ExecutionContext

取得 ExecutionContext 物件,包含目前執行緒各種內容的相關資訊。

IsAlive

取得值,指出目前執行緒的執行狀態。

IsBackground

取得或設定值,指出執行緒是不是背景執行緒。

IsThreadPoolThread

取得值,指出執行緒是否屬於 Managed 執行緒集區。

ManagedThreadId

取得目前 Managed 執行緒的唯一識別項。

Name

取得或設定執行緒的名稱。

Priority

取得或設定值,指出執行緒的排程優先權。

ThreadState

取得數值,包含目前執行緒的狀態。

方法

Abort()
已淘汰.

於被叫用的所在執行緒中引發 ThreadAbortException,開始處理執行緒的結束作業。 呼叫這個方法通常會結束執行緒。

Abort(Object)
已淘汰.

於被叫用的所在執行緒中引發 ThreadAbortException,開始結束執行緒的處理作業,同時也提供執行緒結束的相關例外狀況資訊。 呼叫這個方法通常會結束執行緒。

AllocateDataSlot()

在所有的執行緒上配置未命名的資料位置。 為獲得較佳的效能,請改用以 ThreadStaticAttribute 屬性標示的欄位。

AllocateNamedDataSlot(String)

在所有的執行緒上配置命名的資料位置。 為獲得較佳的效能,請改用以 ThreadStaticAttribute 屬性標示的欄位。

BeginCriticalRegion()

通知主機在即將執行的程式碼區域中,執行緒中止或未處理例外狀況的影響,可能會危及應用程式定義域中的其他工作。

BeginThreadAffinity()

通知主機 Managed 程式碼即將執行指令,而這些指令相依於目前實體作業系統執行緒的識別 (Identity)。

DisableComObjectEagerCleanup()

關閉目前執行緒之執行階段可呼叫包裝函式 (RCW) 的自動清除功能。

EndCriticalRegion()

通知主機在即將執行的程式碼區域中,執行緒中止或未處理例外狀況影響的對象只限於目前的工作。

EndThreadAffinity()

通知主機 Managed 程式碼已完成執行指令,而這些指令相依於目前實體作業系統執行緒的識別。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Finalize()

確認釋出資源,並在記憶體回收行程回收 Thread 物件時執行其他清除作業。

FreeNamedDataSlot(String)

排除處理序中所有執行緒的名稱和位置之間的關聯。 為獲得較佳的效能,請改用以 ThreadStaticAttribute 屬性標示的欄位。

GetApartmentState()

傳回表示 Apartment 狀態的 ApartmentState 值。

GetCompressedStack()
已淘汰.
已淘汰.

傳回 CompressedStack 物件,可以用來擷取目前執行緒的堆疊。

GetCurrentProcessorId()

取得用來指出目前執行緒正在哪個處理器上執行的識別碼。

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)

在執行緒啟動之前設定其 Apartment 狀態。

SetCompressedStack(CompressedStack)
已淘汰.
已淘汰.

將擷取的 CompressedStack 套用到目前的執行緒。

SetData(LocalDataStoreSlot, Object)

針對那個執行緒目前的定義域,在目前執行之執行緒上的指定位置中設定資料。 為獲得較佳的效能,請改用以 ThreadStaticAttribute 屬性標示的欄位。

Sleep(Int32)

在指定的毫秒數內暫止目前的執行緒。

Sleep(TimeSpan)

在指定長度的時間內暫止目前的執行緒。

SpinWait(Int32)

造成執行緒等候 iterations 參數定義的次數。

Start()

造成作業系統將目前執行個體的狀態變更為 Running

Start(Object)

使作業系統將目前執行個體的狀態改成 Running,並選擇性地提供物件,在物件中包含執行緒執行之方法所要使用的資料。

Suspend()
已淘汰.
已淘汰.
已淘汰.

將執行緒暫止;或者如果執行緒已經暫止,則沒有影響。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
TrySetApartmentState(ApartmentState)

在執行緒啟動之前設定其 Apartment 狀態。

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)

將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。

_Thread.GetTypeInfo(UInt32, UInt32, IntPtr)

擷取物件的類型資訊,可以用來取得介面的類型資訊。

_Thread.GetTypeInfoCount(UInt32)

擷取物件提供的類型資訊介面數目 (0 或 1)。

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

提供物件所公開的屬性和方法的存取權。

適用於

執行緒安全性

此型別具備執行緒安全。

另請參閱