>>603
画面側でInvokeすると、漏れがあったり、無駄があったりするし、初心者となると、尚更。
とはいえ、通信スレッド側でInvokeするのは、これまた拡張性が損なわれる。

フォームかWPFかは知らないが、UIが生成された時点でSynchronizationContextを通信スレッドで受け取って
通信スレッド側からは、SynchronizationContextを経由してメソッドを実行。←つまりInvoke。
フォームなら メインフォームのLoadイベントが発生したあたりで
System.Windows.Forms.WindowsFormsSynchronizationContext を通信スレッドに渡してやる感じ。