System.Threading 命名空間
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供可實現多執行緒程式設計的類別與介面。 除了用於同步執行緒活動與資料存取的類別(Mutex如 、 Monitor、 InterlockedAutoResetEvent、 等)外,這個命名空間還包含一個ThreadPool類別,允許你使用系統提供的執行緒池,以及Timer一個對執行緒池執行緒回調方法的類別。
類別
| 名稱 | Description |
|---|---|
| AbandonedMutexException |
當一個執行緒取得另一個執行緒已放棄的物件時拋出的例外,該執行緒在未釋放該執行緒 Mutex 時會拋出。 |
| AsyncLocal<T> |
代表與特定非同步控制流程相關的環境資料,例如非同步方法。 |
| AutoResetEvent |
代表一個執行緒同步事件,當收到訊號時,會釋放一個等待的執行緒,然後自動重置。 此類別無法獲得繼承。 |
| Barrier |
可讓多個工作透過多個階段以平行方式處理演算法。 |
| BarrierPostPhaseException |
當 a Barrier 的後階段作用失敗時拋出的例外。 |
| CancellationTokenSource |
向A CancellationToken 發出應該取消的訊號。 |
| CompressedStack |
提供設定與擷取當前執行緒壓縮堆疊的方法。 此類別無法獲得繼承。 |
| CountdownEvent |
表示當同步處理基本類型計數達到零時發出訊號。 |
| EventWaitHandle |
代表執行緒同步事件。 |
| ExecutionContext |
管理目前線程的執行內容。 此類別無法獲得繼承。 |
| HostExecutionContext |
封裝並傳播主機執行內容到線程。 |
| HostExecutionContextManager |
提供允許共通語言執行環境主機參與執行上下文的流程或遷移的功能。 |
| Interlocked |
為多個線程共用的變數提供不可部分完成的作業。 |
| LazyInitializer |
提供懶惰的初始化例程。 |
| LockRecursionException |
當遞迴進入鎖與該鎖的遞迴策略不相容時,拋出的例外。 |
| ManualResetEvent |
表示必須手動重設訊號的線程同步處理事件。 此類別無法獲得繼承。 |
| ManualResetEventSlim |
表示必須手動重設訊號的線程同步處理事件。 此類別是 的輕量級替代方案 ManualResetEvent。 |
| Monitor |
提供一種同步物件存取的機制。 |
| Mutex |
一個同步原語,也可用於程序間同步。 |
| Overlapped |
提供 Win32 |
| PreAllocatedOverlapped |
表示原生重疊 I/O 作業的預先配置狀態。 |
| ReaderWriterLock |
定義一個支援單一寫入者與多個讀取器的鎖。 |
| ReaderWriterLockSlim |
表示用來管理資源存取權的鎖定,允許多個線程讀取或獨佔寫入存取權。 |
| RegisteredWaitHandle |
代表在呼叫 RegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean)時已註冊的句柄。 此類別無法獲得繼承。 |
| Semaphore |
限制可同時存取資源或資源池的執行緒數量。 |
| SemaphoreFullException |
當方法被呼叫於數量已達最大值的信號量時,會拋 Release 出例外。 |
| SemaphoreSlim |
代表一種輕量級替代方案 Semaphore ,限制可同時存取資源或資源池的執行緒數量。 |
| SynchronizationContext |
提供在各種同步模型中傳播同步上下文的基本功能。 |
| SynchronizationLockException |
當某方法要求呼叫者擁有某個 Monitor 的鎖,而該方法被不擁有該鎖的呼叫者呼叫時拋出的例外。 |
| Thread |
建立並控制執行緒,設定優先順序,並取得其狀態。 |
| ThreadAbortException |
當呼叫方法 Abort(Object) 時拋出的例外。 此類別無法獲得繼承。 |
| ThreadExceptionEventArgs |
提供 ThreadException 事件的資料。 |
| ThreadInterruptedException |
例外是在等待 Thread 狀態下被中斷時拋出的。 |
| ThreadLocal<T> |
提供數據的線程本機記憶體。 |
| ThreadPool |
提供一個執行緒池,可用於執行任務、後續工作項目、處理非同步 I/O、代表其他執行緒等待,以及程序計時器。 |
| ThreadPoolBoundHandle |
表示系結至系統線程集區的 I/O 句柄,並讓低階元件接收異步 I/O 作業的通知。 |
| ThreadStartException |
當受管理執行緒在底層作業系統執行緒啟動後,但執行緒尚未準備好執行使用者程式碼之前,發生失敗時拋出的例外。 |
| ThreadStateException |
當 a Thread 在 a 中 是 方法呼叫的無效 ThreadState 時拋出的例外。 |
| Timeout |
包含指定無限超時區間的常數。 此類別無法獲得繼承。 |
| Timer |
提供機制,以指定間隔在線程集區線程上執行方法。 此類別無法獲得繼承。 |
| Volatile |
包含執行揮發性記憶體操作的方法。 |
| WaitHandle |
封裝操作系統特定物件,以等候共用資源的獨佔存取權。 |
| WaitHandleCannotBeOpenedException |
當嘗試開啟不存在的系統互斥、信號量或事件等待處理時,會拋出的例外。 |
| WaitHandleExtensions |
提供方便的方法,讓你能使用安全的帳號來使用等待的帳號。 |
結構
| 名稱 | Description |
|---|---|
| AsyncFlowControl |
提供還原線程之間執行內容移轉或流程的功能。 |
| AsyncLocalValueChangedArgs<T> |
類別,提供數據變更資訊給 AsyncLocal<T> 註冊變更通知的實例。 |
| CancellationToken |
傳播應該取消作業的通知。 |
| CancellationTokenRegistration |
代表已註冊於 CancellationToken. |
| LockCookie |
定義實作單一寫入器/多讀取器語意的鎖定。 這是實值型別。 |
| NativeOverlapped |
提供從 Unmanaged 程式代碼中可見的明確版面配置,且其配置與 Win32 OVERLAPPED 結構相同,並在結尾加上其他保留字段。 |
| SpinLock |
提供互斥鎖定基本類型,其中嘗試取得鎖定的線程會在迴圈中重複檢查,直到鎖定變成可用為止。 |
| SpinWait |
提供微調型等候的支援。 |
列舉
| 名稱 | Description |
|---|---|
| ApartmentState |
指定 Thread的 Apartment 狀態。 |
| EventResetMode |
指出在收到訊號之後,EventWaitHandle 會自動或手動重設。 |
| LazyThreadSafetyMode |
指定 Lazy<T> 實例如何同步處理多個線程之間的存取。 |
| LockRecursionPolicy |
指定同一個線程是否可以多次輸入鎖定。 |
| ThreadPriority |
指定 Thread的排程優先順序。 |
| ThreadState |
指定 Thread的執行狀態。 |
委派
| 名稱 | Description |
|---|---|
| ContextCallback |
代表一個在新上下文中要呼叫的方法。 |
| IOCompletionCallback |
當執行緒池完成 I/O 操作時,會接收錯誤碼、位元組數及重疊值型別。 |
| ParameterizedThreadStart |
代表在 上 Thread執行的方法。 |
| SendOrPostCallback |
表示當訊息要派遣到同步上下文時,要呼叫的方法。 |
| ThreadExceptionEventHandler |
代表將處理ThreadExceptionApplication事件的方法。 |
| ThreadStart |
代表在 上 Thread執行的方法。 |
| TimerCallback |
代表處理來自 的 Timer呼叫的方法。 |
| WaitCallback |
代表由執行緒池執行緒執行的回調方法。 |
| WaitOrTimerCallback |
代表當 a WaitHandle 被發出訊號或逾時時,要呼叫的方法。 |