一連のアクションを実行し、同時にスローする例外に依存するか、例外をスローしない場合はUIを更新しますが、どうすればこのようなことを実現できますか?
ステップごとに新しいスレッドを作成しようとしましたが、ステップの1つが終了するまで待機せず、常に失敗メッセージを書き込みます。Thread.Join()を使用しても、UIスレッドもブロックされるため役に立ちませんでした...
一連のアクションを実行し、同時にスローする例外に依存するか、例外をスローしない場合はUIを更新しますが、どうすればこのようなことを実現できますか?
ステップごとに新しいスレッドを作成しようとしましたが、ステップの1つが終了するまで待機せず、常に失敗メッセージを書き込みます。Thread.Join()を使用しても、UIスレッドもブロックされるため役に立ちませんでした...
BackgroundWorkerが必要です。実行するコードをバックグラウンドスレッドのDoWork
ハンドラーに配置し、UIを更新するコードをRunWorkerCompleted
イベントハンドラーに配置します。
ハンドラーから中間のGUIを更新する場合は、次のDoWork
ようにUIディスパッチャーでキューに入れることができます-
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
// Update GUI here.
}, null);