【发布时间】:2013-12-14 10:41:29
【问题描述】:
我对如何处理异常有点困惑。
我有一个后台工作线程,它运行一些长时间运行的进程。我的理解是,如果后台工作线程发生异常,代码仍然会在 RunWorkerCompleted 方法结束。
void bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
throw e.Error;
如果是这种情况,在 bgWorker.RunWorkerAsync(); 周围放置一个 try catch 块是否有任何意义?打电话,我猜不是?
我想重新抛出 RunWorkerCompleted 方法中捕获的异常,如何在不丢失堆栈跟踪的情况下执行此操作 - 我上面的内容是否正确?我读到您在重新抛出异常时应该只使用“throw”?
【问题讨论】:
标签: c# multithreading backgroundworker