ExecutionContext 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
管理目前線程的執行內容。 此類別無法獲得繼承。
public ref class ExecutionContext sealed
public ref class ExecutionContext sealed : System::Runtime::Serialization::ISerializable
public ref class ExecutionContext sealed : IDisposable, System::Runtime::Serialization::ISerializable
public sealed class ExecutionContext
[System.Serializable]
public sealed class ExecutionContext : System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class ExecutionContext : IDisposable, System.Runtime.Serialization.ISerializable
public sealed class ExecutionContext : IDisposable, System.Runtime.Serialization.ISerializable
type ExecutionContext = class
[<System.Serializable>]
type ExecutionContext = class
interface ISerializable
[<System.Serializable>]
type ExecutionContext = class
interface IDisposable
interface ISerializable
type ExecutionContext = class
interface IDisposable
interface ISerializable
Public NotInheritable Class ExecutionContext
Public NotInheritable Class ExecutionContext
Implements ISerializable
Public NotInheritable Class ExecutionContext
Implements IDisposable, ISerializable
- 繼承
-
ExecutionContext
- 屬性
- 實作
備註
這個 ExecutionContext 類別提供一個容器,存放所有與邏輯執行緒相關的資訊。 在 .NET Framework 中,這包括安全上下文、呼叫上下文和同步上下文。 在 .NET Core 中,不支援安全上下文與呼叫上下文,但模擬上下文與文化通常會與執行上下文同步。 此外,在 .NET Core 中,同步上下文不會與執行上下文同步,而在 .NET Framework 中有時可能會。 更多資訊請參見 ExecutionContext 與 SynchronizationContext。
此 ExecutionContext 類別提供使用者程式碼捕捉並傳輸此上下文於使用者定義的非同步點的功能。 通用語言執行時確保 能 ExecutionContext 在受管理程序中執行時定義的非同步點間持續傳輸。
- 以下內容僅適用於 .NET 框架。 -
執行上下文是管理型相當於 COM 公寓的管理型。 在應用程式域中,執行緒傳輸時必須傳輸整個執行上下文。 這種情況發生在使用 Thread.Start 方法進行的傳輸、大多數執行緒池操作,以及透過 Windows 訊息泵進行的Windows Forms線程編組時。 這種情況不會發生在不安全的執行緒池操作(如 method 中 UnsafeQueueUserWorkItem ),因為這些操作不會傳輸壓縮堆疊。 無論壓縮堆疊流向何處,受管理的主體、同步、區域與使用者上下文也會隨之流動。 該 ExecutionContext 類別提供 Capture 和 CreateCopy 方法來取得執行上下文,以及 Run 設定當前執行緒執行上下文的方法。
ExecutionContext與執行緒相關聯的 不能被設定在其他執行緒上。 嘗試如此操作會導致例外被拋棄。 要將 從 ExecutionContext 一個執行緒傳播到另一個執行緒,請複製一個 ExecutionContext。
內部則儲存 ExecutionContext 所有與 LogicalCallContext相關聯的資料。 這使得 LogicalCallContext 資料在複製與傳輸時能夠被傳播 ExecutionContext 。
方法
| 名稱 | Description |
|---|---|
| Capture() |
擷取目前執行緒的執行上下文。 |
| CreateCopy() |
建立目前執行上下文的副本。 |
| Dispose() |
釋放目前類別實例 ExecutionContext 所使用的所有資源。 |
| Equals(Object) |
判斷指定的 物件是否等於目前的物件。 (繼承來源 Object) |
| GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
將指定的 SerializationInfo 物件設定為重建當前執行上下文實例所需的邏輯上下文資訊。 |
| GetType() |
取得目前實例的 Type。 (繼承來源 Object) |
| IsFlowSuppressed() |
表示執行上下文的流程目前是否被抑制。 |
| MemberwiseClone() |
建立目前 Object的淺層複本。 (繼承來源 Object) |
| RestoreFlow() |
恢復非同步執行緒間執行上下文的流動。 |
| Run(ExecutionContext, ContextCallback, Object) |
在當前執行緒中執行指定的執行上下文中執行一個方法。 |
| SuppressFlow() |
抑制執行上下文在非同步執行緒間的流動。 |
| ToString() |
傳回表示目前 物件的字串。 (繼承來源 Object) |