Когда мое приложение С# закрывается, оно иногда попадает в процедуру очистки. В частности, фоновый работник не закрывается. Это в основном, как я пытаюсь закрыть его:
private void App_FormClosing (отправитель объекта, FormClosingEventArgs e) { backgroundWorker1.CancelAsync(); while (backgroundWorker1.IsBusy);//Задерживается здесь. }
Забастовкa >
Есть ли другой способ, которым я должен это делать? Я использую Microsoft Visual С# 2008 Express Edition. Спасибо.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Фоновый работник не появляется. Это то, что у меня есть:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while (!backgroundWorker1.CancellationPending)
{
// Do something.
}
}
Я также изменил код очистки:
private void App_FormClosing(object sender, FormClosingEventArgs e)
{
while (backgroundWorker1.IsBusy)
{
backgroundWorker1.CancelAsync();
System.Threading.Thread.Sleep(1000);
}
}
Есть ли что-то еще, что я должен делать?