実行中の場合は、ユーザーがアプリケーションを閉じることを要求すると、BackgroundWorker
が終了するのをどのように待つことができますか?私はこれを待ってBackgroundWorker
を終了してから終了したいと思います。私はAutoResetEvent
を試しましたが、FormClosing時にWaitOne()
を呼び出すとUI全体がブロックされ、Set()
が呼び出されたRunWorkerCompletedイベントは発生しません。 どうすればこのことができますか?実行中の場合、FormClosing時にBackgroundWorkerの終了を待つ
私はこのための代替/適切な方法を探しています:ユーザーがしようとした場合
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