需要幫助來停止BackgroundWorker線程。 我想停止後臺工作線程。這是我在做什麼:需要幫助來停止BackgroundWorker線程
在停止按鈕點擊(UI層):
if (backgroundWorker.IsBusy == true &&
backgroundWorker.WorkerSupportsCancellation == true)
{
backgroundWorker.CancelAsync();
}
在DoWork的事件(UI層):
if ((backgroundWorker.CancellationPending == true))
{
e.Cancel = true;
}
else
{
//Function which progresses the progress bar is called
//here with its definition in business layer
}
一旦DoWork的事件被觸發,我程序控制是在業務層定義的函數中,我如何恢復到DoWork事件來設置'e.Cancel = true'?
。如果您>在DoWork中沒有循環,那麼它不會工作。 – stuartd
@Stuart - 正如答案中所述,這是正確的。如果沒有循環,沒有強制關閉GUI線程中的線程的好方法。 –
@ØyvindKnobloch-Bråthen - 請告訴我什麼是從GUI線程強制殺死Backgroundworker線程的壞方法。 (DoWork中沒有循環) – Zeeshanef