説明不足だったな。
この実装はほとんど屑の言っている要件を満たす目的でかいてる。
SyncObjectがセットされている場合はそれに同期したスレッドで実行し、
そうでない場合はThreadPoolを使う。まぁ標準的な実装だ。

ちなみに、実行スレッドと何の関係性もないことを示した先の書き込みの
意味を含めて、実際に実装者が勝手に指定できることを示すために
ThreadPoolを使っている。

>SyncObject.Invoke(Request, new object[] { this, e });
WinFormのスレッドでメソッドが動く。

これが同期する場合のすべてだ。この場合SyncObjectはプロパティな。
ちなみに、これのセット用のコードを直接コードジェネレータに吐き出させる
ことも出来るだろうがその話は長くなるので省略。