Я пытаюсь запустить фоновый рабочий со счетчиком, работающим в основном потоке, и я хотел бы дождаться завершения фонового рабочего. В настоящее время я могу иметь и то, и другое. Я попытался использовать событие автоматического сброса, но это блокирует основной поток, поэтому счетчик не отображается. Есть ли что-то похожее на событие автоматического сброса, которое не блокирует основной пользовательский интерфейс.
Вот часть моего кода
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;
...
}
Есть идеи? Любая помощь приветствуется! Заранее спасибо.