WCF サービスをホストする Winforms アプリケーションがあります。
ボタンクリックイベント内で、この接続がまだ進行中(1〜2秒)にUIが応答するためにConnect
接続が開かれ、イベントの後、他のクラスに移動して自分のことを行います。BackgroundWorker
BackgroundWorker_RunWorkerCompleted
最近Thread.Sleep
、デバッグ中にいくつか追加しましたが、UIがフリーズしないことに気付いたので、検索した後、おそらくBackgroundWorker
スレッドが原因であることがわかりました(私は正しいですか?)
私のアプリケーションには、フォーム クラスと、いくつかのイベントを含む別のクラスがあり、フォーム クラスはそれらのイベントをサブスクライブし、この方法で UI を更新します。
this.Invoke((MethodInvoker)delegate
{
// Update UI
});
したがって、私の質問は次のとおりです。この方法で別のスレッドを使用して使用しても問題ありthis.Invoke
ませんか?
それとも、別の方法で行う必要がありますか?