0

メイン スレッドで実行されているスピナーを使用してバックグラウンド ワーカーを実行しようとしていますが、バックグラウンド ワーカーが終了するまで待ちたいと思います。現在、私はどちらか一方を持つことができます。自動リセット イベントを使用してみましたが、メイン スレッドがロックアウトされるため、スピナーが表示されません。メイン 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;
    ...
}

何か案は?どんな助けでも大歓迎です!前もって感謝します。

4

1 に答える 1