Требуется помощь, чтобы остановить поток BackgroundWorker

Нужна помощь, чтобы остановить поток BackgroundWorker. Я пытаюсь остановить фоновый рабочий поток. Вот что я делаю:

При нажатии кнопки остановки (уровень пользовательского интерфейса):

if (backgroundWorker.IsBusy == true && 
    backgroundWorker.WorkerSupportsCancellation == true)
{
    backgroundWorker.CancelAsync();
}

При событии DoWork (уровень пользовательского интерфейса):

if ((backgroundWorker.CancellationPending == true))
{
     e.Cancel = true;
}
else
{
    //Function which progresses the progress bar is called 
    //here with its definition in business layer 
}

После запуска события DoWork и управления моей программой в функции, определенной в Business слоя, как мне вернуться к событию DoWork, чтобы установить 'e.Cancel = true'?

8
задан stuartd 14 February 2011 в 11:55
поделиться