ExecutionContext クラス

定義

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

public ref class ExecutionContext sealed
public ref class ExecutionContext sealed : IDisposable, System::Runtime::Serialization::ISerializable
public ref class ExecutionContext sealed : System::Runtime::Serialization::ISerializable
public sealed class ExecutionContext
public sealed class ExecutionContext : IDisposable, System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class ExecutionContext : System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class ExecutionContext : IDisposable, System.Runtime.Serialization.ISerializable
type ExecutionContext = class
type ExecutionContext = class
    interface IDisposable
    interface ISerializable
[<System.Serializable>]
type ExecutionContext = class
    interface ISerializable
[<System.Serializable>]
type ExecutionContext = class
    interface IDisposable
    interface ISerializable
Public NotInheritable Class ExecutionContext
Public NotInheritable Class ExecutionContext
Implements IDisposable, ISerializable
Public NotInheritable Class ExecutionContext
Implements 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けられているすべてのデータが格納されます。 これにより、 が LogicalCallContext コピーおよび転送されるときにデータを ExecutionContext 伝達できます。

メソッド

Capture()

現在のスレッドから実行コンテキストをキャプチャします。

CreateCopy()

現在の実行コンテキストのコピーを作成します。

Dispose()

ExecutionContext クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetObjectData(SerializationInfo, StreamingContext)

現在の実行コンテキストのインスタンスを再作成するのに必要な論理コンテキスト情報を使用して、指定した SerializationInfo オブジェクトを設定します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
IsFlowSuppressed()

実行コンテキストのフローが現在抑制されているかどうかを示します。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
Restore(ExecutionContext)

キャプチャされた実行コンテキストを現在のスレッドで復元します。

RestoreFlow()

複数の非同期スレッド間における実行コンテキストのフローを復元します。

Run(ExecutionContext, ContextCallback, Object)

現在のスレッドで指定した実行コンテキストを使用してメソッドを実行します。

SuppressFlow()

複数の非同期スレッド間における実行コンテキストのフローを抑制します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象