【发布时间】:2010-11-25 09:22:13
【问题描述】:
如果操作引发了您的代码未处理的异常,BackgroundWorker 会捕获该异常并将其传递给 RunWorkerCompleted 事件处理程序,在该处理程序中它作为 System.ComponentModel.RunWorkerCompletedEventArgs 的 Error 属性公开
但是当我尝试时
_workers[i].DoWork += (s, args) =>
{
throw new Exception("Error!");
};
我得到 Exception Unhandled 错误...代码似乎没有转到 RunWorkerCompleted。错误应该如何处理?
更新
我已经设置了简单的处理程序
_workers[i].DoWork += (s, args) =>
{
throw new Exception("Error!");
}
...
_workers[i].RunWorkerCompleted += (s, args) =>
{
if (args.Error != null) {
string dummy = args.Error.Message;
}
...
};
代码永不离开DoWork
【问题讨论】:
-
你有 RunWorkerCompleted 处理程序吗?
-
你试过没有调试器的代码吗?
-
刚刚完成,代码确实转到了
RunWorkComplete处理程序,只是它似乎一直“循环”在那里?见screenr.com/eCF。由于我不能使用 VS Debug,我真的不知道为什么它一直在循环......我刚刚添加了 1 个任务
标签: c# exception backgroundworker