gpt4 book ai didi

.net - 取消 e.result 中的后台工作异常

转载 作者:行者123 更新时间:2023-12-04 18:49:34 26 4
gpt4 key购买 nike

我有一个后台工作人员的严重问题。如果任务正常结束,代码正在工作。当我取消后台任务时,我在 RunWorkerCompleted 函数中为 e.Result 得到一个 system.invalidoperationexception。怎么了?谢谢你。

这是我的鳕鱼:

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;
}

最佳答案

这是设计使然,当 DoWork 被取消或抛出异常时,Result 属性 getter 将抛出。只需检查一下:

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (!e.Cancelled && e.Error == null) {
List<Object> resultList = (List<Object>)e.Result;
// etc..
}
}

关于.net - 取消 e.result 中的后台工作异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8300799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com