我有一个严重的问题与后台工作。代码正在工作,如果任务正常结束。当我取消后台任务时,我在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