メイン スレッドで実行されているスピナーを使用してバックグラウンド ワーカーを実行しようとしていますが、バックグラウンド ワーカーが終了するまで待ちたいと思います。現在、私はどちらか一方を持つことができます。自動リセット イベントを使用してみましたが、メイン スレッドがロックアウトされるため、スピナーが表示されません。メイン UI をロックアウトしない自動リセット イベントに似たものはありますか。
これが私のコードの一部です
BackgroundWorker _bWorker = new BackgroundWorker();
_bWorker.DoWork += _bWorker_DoWork ;
_bWorker.RunWorkerCompleted += _bWorker_RunWorkerCompleted;
AutoResetEvent are = new AutoResetEvent(false);
_bWorker.RunWorkerAsync();
// Wait here until the background worker is finished
are.WaitOne();
...
private void _bWorker_DoWork(object sender, DoWorkEventArgs e)
{
// Show spinner
WaitSpinnerAdornerText = "Working";
IsWaitSpinnerVisible = true;
...
are.Set();
}
private void _bWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
IsWaitSpinnerVisible = false;
...
}
何か案は?どんな助けでも大歓迎です!前もって感謝します。