This is how I set up my Background Worker終止背景不同類別的工作人員
問題是:如何在中途終止該過程?我必須創建一個取消按鈕來停止當前的處理。
我想利用線下的...
if ((worker.CancellationPending == true))
{
e.Cancel = true;
}
...和封裝內AllocateTrades2方法,但是這意味着我必須調用從別的地方取消標誌,它會檢查它只在方法完成處理之後。
我不能只是假裝它沒有做任何事情,因爲如果用戶再次單擊相同的操作,就會拋出該工作人員正在使用的異常。
什麼,我想要做的一個例子:
public void bw_DoWork(object sender, DoWorkEventArgs e)
{
AllocateTrades2();
}
public void AllocateTrades()
{
Method1();
CheckTerminate();
Method2();
CheckTerminate();
//Click the cancel button in the UI during method 3 processing
Method3();
CheckTerminate();
}
而且CheckTerminate()停止所有的處理,使本身可用於未來的呼叫。我正在嘗試做什麼?
這可能是一個矯枉過正的問題(取決於項目的大小和檢查位置的數量),但這看起來像樣板和重複的代碼,我會創建一個方面並移動檢查其中的掛起取消。 –
沒有完全相同的結構,但檢查每種方法的想法是相同的。 +1並被接受。 – Alexey