在使用C#的BackgroundWorker时需要在UI界面上显示DoWork中发生的异常,但怎么调试都无法跳转到界面上,异常也不会传递到RunWorkerCompleted方法中(e.Error为空)。在网上搜了很多类似的问题都没有找到答案(搜索方法不对,还是运气不好?),幸好在CSDN上搜到了一个相似的问题(如何统一处理BackgroundWork产生的异常),看到里面说使用“开始执行(不调试)”依然无法传递出异常,才想到可能是调试的问题,改用“开始执行(不调试)”(调试菜单,或CTRL+F5)成功解决这个问题。眼睛疼,睡觉。
DoWork方法执行时发生异常并中断程序运行,无法通过e.Error获取异常:
界面上显示错误: