我有一個嚴重的問題與後臺工作。代碼正在工作,如果任務正常結束。當我取消後臺任務時,我在e.Result的RunWorkerCompleted函數中得到了system.invalidoperationexception。哪裏不對?謝謝。取消e.result中的後臺工作者異常
這裏是我的鱈魚:
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
if (backgroundWorker.CancellationPending == true)
e.Cancel = true;
e.Result = resultList;
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
List<Object> resultList = (List<Object>)e.Result;
}
啊好的,但做什麼,如果我需要如果取消導致事件? – user1069951
想一想:如果DoWork被異常取消或中斷,那麼你不能得到有效的結果。它沒有完成。 –
它被意圖取消:用戶可以放棄一個耗時的任務,然後backgroundWorker.CancelAsync()被調用,但沒有例外。我想向用戶介紹迄今爲止的結果。 我怎麼能這樣做,我不知道 – user1069951