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 的資訊,請參閱 Thread 的補充 API 備註

建構函式

名稱 Description
Thread(ParameterizedThreadStart, Int32)

初始化類別的新實例 Thread ,指定一個代理,允許在執行緒啟動時傳遞物件,並指定執行緒的最大堆疊大小。

Thread(ParameterizedThreadStart)

初始化該類別的新實例 Thread ,指定一個代理,允許在執行緒啟動時傳遞物件給執行緒。

Thread(ThreadStart, Int32)

初始化該類別的新實例 Thread ,指定執行緒的最大堆疊大小。

Thread(ThreadStart)

初始化 Thread 類別的新執行個體。

屬性

名稱 Description
ApartmentState
已淘汰.

取得或設定這個討論串的公寓狀態。

CurrentContext

取得執行緒目前執行的上下文。

CurrentCulture

取得或設定當前討論串的文化。

CurrentPrincipal

取得或設定執行緒目前的原則(用於基於角色的安全)。

CurrentThread

會取得目前執行的執行緒。

CurrentUICulture

取得或設定資源管理器目前使用的文化,以便在執行時查詢特定文化資源。

ExecutionContext

取得 ExecutionContext 一個包含當前執行緒各種上下文資訊的物件。

IsAlive

會獲得一個表示目前執行緒執行狀態的值。

IsBackground

取得或設定一個值,指示執行緒是否為背景執行緒。

IsThreadPoolThread

會取得一個值,表示執行緒是否屬於受管理的執行緒池。

ManagedThreadId

會獲得目前管理執行緒的唯一識別碼。

Name

取得或設定該串的名稱。

Priority

取得或設定一個值,表示執行緒的排程優先順序。

ThreadState

會得到包含當前執行緒狀態的值。

方法

名稱 Description
Abort()

在被呼叫的執行緒中提出 a ThreadAbortException ,開始終止執行緒的過程。 呼叫此方法通常會終止執行緒。

Abort(Object)

在呼叫執行緒中提出 a ThreadAbortException ,開始終止執行緒的過程,同時提供關於執行緒終止的例外資訊。 呼叫此方法通常會終止執行緒。

AllocateDataSlot()

在所有執行緒上分配一個未命名的資料槽。 為了提升效能,建議使用標有屬性的 ThreadStaticAttribute 欄位。

AllocateNamedDataSlot(String)

在所有執行緒上分配一個命名的資料槽。 為了提升效能,建議使用標有屬性的 ThreadStaticAttribute 欄位。

BeginCriticalRegion()

通知主機執行即將進入一個程式碼區域,該區域中執行緒中止或未處理異常可能危及應用程式領域中其他任務。

BeginThreadAffinity()

通知主機管理程式碼即將執行依賴當前實體作業系統執行緒身份的指令。

DisableComObjectEagerCleanup()

關閉目前執行緒執行時可呼叫包裝器(RCW)的自動清理。

EndCriticalRegion()

通知主機執行即將進入一個程式碼區域,該區域中執行緒中止或未處理異常的影響僅限於當前任務。

EndThreadAffinity()

通知主機管理程式碼已完成依據當前實體作業系統執行緒身份的指令執行。

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)

在執行緒啟動前就設定了 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 狀態。

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()

導致呼叫執行緒的執行讓位給在目前處理器上準備執行的其他執行緒。 作業系統會選擇要讓路的執行緒。

明確介面實作

名稱 Description
_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)

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

適用於

執行緒安全性

此類型是安全線程。

另請參閱