SynchronizationContext一部の操作をシリアル化し、同じスレッドで実行するために (アプリケーションによって提供される) に依存するライブラリ コードがあります。このライブラリ コードは、それが実行されるアプリケーションに依存しません。
ただし、 の一部の実装のみSynchronizationContextがこれWindowsFormSynchronizationContextをDispatcherSynchronizationContext行います。
SynchronizationContextベース自体のような他の実装AspNetSynchronizationContextはフリースレッドです。操作のシリアル化は行いません。
コードに が渡された場合、SynchronizationContextこれら 2 つのケースをどのように区別できますか? 同期コンテキストが適切でない場合、明確なエラーですばやく失敗するようにします。