如何在从BackgroundWorker调用的代码中调试未处理的异常?

Joh*_*ski 4 .net c# debugging asynchronous backgroundworker

我正在使用BackgroundWorker对象及其DoAsync()方法从一个简单的WinForms应用程序异步运行一些导入代码.我有一个问题,我不知道异常被抛出,线程过早死亡.我最终发现了这一点,现在知道在BackgroundWorker中读取未处理的异常后抛出异常的时间.

但是,我在调试时仍然遇到问题.我该如何调试这段代码?我想我可以在不使用BackgrounWorker的测试应用程序中运行它,但有没有办法按原样调试它?如果我单步执行实际抛出异常的代码,那么当异常发生时我就会被逐步推出.从RunWorkerCompletedEventHandler自然中重新抛出异常也无济于事.

有任何想法吗!?提前致谢!

And*_*zub 7

为什么不使用VS的"Break On Exceptions"选项(Ctrl + Alt + E或Debug-> Exceptions并在Thrown列中放置复选框)?这将在抛出任何异常时停止程序执行.