コンテキストは、特別なニーズを持つオブジェクトのドメイン内に細分化された「コンテナー」を作成します (または、特別なニーズを持たないオブジェクトの場合は、デフォルトのコンテキストが使用されます)。
ExecutionContext クラスがこれらのコンテキストにどのように関連しているかを理解するのに苦労しています。
それらはどのように関連しているか、または異なっているかなど?
コンテキストは、特別なニーズを持つオブジェクトのドメイン内に細分化された「コンテナー」を作成します (または、特別なニーズを持たないオブジェクトの場合は、デフォルトのコンテキストが使用されます)。
ExecutionContext クラスがこれらのコンテキストにどのように関連しているかを理解するのに苦労しています。
それらはどのように関連しているか、または異なっているかなど?
ExecutionContext
スレッドの実行に関連する情報のコンテナです。つまり、これはほとんど特殊なコンテキストです。いくつかの優れたプロパティがありますが、他の種類のコンテキストには適用できない可能性があります。これは、コンテキストが異なれば用途も異なる可能性があるため、問題ありません。
MSDNから:
ExecutionContextクラスは、実行の論理スレッドに関連するすべての情報のための単一のコンテナーを提供します。これには、セキュリティコンテキスト、呼び出しコンテキスト、および同期コンテキストが含まれます。
ExecutionContextクラスは、ユーザーコードがこのコンテキストをキャプチャし、ユーザー定義の非同期ポイント間で転送するための機能を提供します。共通言語ランタイムは、ExecutionContextが管理対象プロセス内のランタイム定義の非同期ポイント間で一貫して転送されることを保証します。
実行コンテキストは、COMアパートメントと同等の管理対象です。アプリケーションドメイン内では、スレッドが転送されるたびに実行コンテキスト全体を転送する必要があります。この状況は、Thread.Startメソッド、ほとんどのスレッドプール操作、およびWindowsメッセージポンプを介したWindowsフォームスレッドマーシャリングによって行われた転送中に発生します。圧縮スタックを転送しない安全でないスレッドプール操作(UnsafeQueueUserWorkItemメソッドなど)では発生しません。
上記のリンクで、ExecutionContextの詳細を確認できます。