BackgroundWorker コントロールの完了イベントは GUI スレッドに戻ってきますか、それともマーシャリングする必要がありますか?
また、進捗イベントは GUI スレッドに戻ってきますか、それともマーシャリングする必要がありますか?
BackgroundWorker コントロールの完了イベントは GUI スレッドに戻ってきますか、それともマーシャリングする必要がありますか?
また、進捗イベントは GUI スレッドに戻ってきますか、それともマーシャリングする必要がありますか?
両方のイベントが UI スレッドにマーシャリングされます。
すべてのイベントは、BackgroundWorker のインスタンスを作成したスレッドに返されます。クライアントがしなければならないことは、イベントをリッスンすることだけです。
あなたはおそらくここにいたでしょうが、以下も参照してください: BackgroundWorker イベント
操作を開始した UI スレッドで発生します。内部では、BackgroundWorker はSynchronizationContextを使用して 2 つのスレッド間のマーシャリングを行います。WPF と WinForms の両方が、起動時に適切な SynchronizationContext をインストールします。
BackgroundWorker が UI スレッドから作成された場合、両方のイベントも UI スレッドで発生します。
バックグラウンド スレッドから作成された場合、イベントは未定義のバックグラウンド スレッドで発生します。
詳細については、この投稿とこの接続の問題を参照してください。