私は常に、SynchronizationContext を使用して別のスレッドへの呼び出しをマーシャリングできると考えていました。SyncCtx.Send() は指定されたデリゲートを呼び出す以外に何もしない (同じスレッドにとどまる) ため、どうやら私は間違っていたようです。SynchronizationContext から派生させて、スレッド コンテキストで作業する必要は本当にあるのでしょうか? 何かが足りない気がします。
達成したいこと: アプリ内でコマンドを実行するための小さな API を想像してみてください。コマンドの実行が終了したときに実行するデリゲートを割り当てることができるため、バックグラウンド スレッドでコマンドを実行することもできます。この "Call-me-when-done"-Delegate は、成功/失敗フラグ、オプションの例外情報などを含む 1 つのパラメーター (状態) を取得します。このデリゲートを元の呼び出しスレッドで呼び出して、lib を使用する開発者が必要な呼び出しなどを処理する必要があります。これを取り除いて、単純な非スレッド認識プログラミングを実行させたいと思います。WindowsFormsSynchronizationContext は、ターゲットとして何らかの制御を与えない限り、どちらも役に立たないようです。
助けてくれてありがとう!