ExecutionContext クラス

定義

現在のスレッドの実行コンテキストを管理します。 このクラスは継承できません。

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 クラスは、実行の論理スレッドに関連するすべての情報に対して 1 つのコンテナーを提供します。 .NET Framework では、これにはセキュリティ コンテキスト、呼び出しコンテキスト、同期コンテキストが含まれます。 .NET Core では、セキュリティ コンテキストと呼び出しコンテキストはサポートされていませんが、偽装コンテキストとカルチャは通常、実行コンテキストと共にフローします。 また、.NET Core では、同期コンテキストは実行コンテキストと共にフローしませんが、.NET Framework では場合によってはフローすることがあります。 詳細については、「 ExecutionContext と SynchronizationContext」を参照してください。

ExecutionContext クラスは、ユーザー定義の非同期ポイント間でこのコンテキストをキャプチャして転送するための機能をユーザー コードに提供します。 共通言語ランタイムにより、マネージド プロセス内のランタイム定義の非同期ポイント間で ExecutionContext が一貫して転送されるようになります。

  • 以下は、.NET Framework にのみ適用されます。 -

実行コンテキストは、COM アパートメントと同等のマネージド コンテキストです。 アプリケーション ドメイン内では、スレッドが転送されるたびに実行コンテキスト全体を転送する必要があります。 この状況は、Thread.Start メソッドによって行われた転送、ほとんどのスレッド プール操作、およびWindows メッセージ ポンプを介したWindows フォームスレッド マーシャリング中に発生します。 圧縮スタックを転送しない安全でないスレッド プール操作 ( UnsafeQueueUserWorkItem メソッドなど) では発生しません。 圧縮されたスタックが流れる場所では、マネージド プリンシパル、同期、ロケール、ユーザー コンテキストもフローします。 ExecutionContext クラスは、実行コンテキストを取得するCaptureメソッドとCreateCopy メソッド、および現在のスレッドの実行コンテキストを設定するRun メソッドを提供します。

スレッドに関連付けられている ExecutionContext を別のスレッドに設定することはできません。 これを試みると、例外がスローされます。 スレッド間で ExecutionContext を伝達するには、 ExecutionContextのコピーを作成します。

内部的には、 ExecutionContext には、 LogicalCallContextに関連付けられているすべてのデータが格納されます。 これにより、ExecutionContextのコピーと転送時にLogicalCallContextデータを伝達できます。

メソッド

名前 説明
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)

適用対象