Отмена фоновых задач
Когда мое приложение C # закрывается, оно иногда попадает в процедуру очистки. В частности, фоновый работник не закрывается. Вот как я пытаюсь это закрыть:
private void App_FormClosing (отправитель объекта, FormClosingEventArgs e) {backgroundWorker1.CancelAsync (); while (backgroundWorker1.IsBusy); // Застрял здесь. }
Есть ли другой способ, которым я должен делать это? Я использую Microsoft Visual C # 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);
}
}
Есть ли что-то еще, что я должен делать?