如果正在運行,如何在用戶請求關閉應用程序時等待BackgroundWorker
完成?我想等這BackgroundWorker
完成,然後退出應用程序。我嘗試使用AutoResetEvent
,但在FormClosing時調用WaitOne()
似乎阻止整個UI,並且不會觸發調用Set()
的RunWorkerCompleted事件。 我該如何做到這一點?等待BackgroundWorker完成後,在FormClosing時間運行
我正在尋找替代/有道此:
bool done = false;
private void my_backgroundWorker_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
{
resetEvent.Set();
done = true;
}
private void myForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (notify_backgroundWorker.IsBusy)
{
while(!done)
{
Application.DoEvents();
Thread.Sleep(500);
}
//resetEvent.WaitOne();
}
}
請參閱[如何在窗體關閉事件中停止BackgroundWorker?](https://stackoverflow.com/q/1731384/719186) – LarsTech