WPF从工作线程抛出异常但继续

时间:2011-01-27 13:53:01

标签: wpf

我有一个工作线程执行类似

的任务的场景
try
{    
    for()
    {
        functionA();
        functionB(); 
    }
}
catch(Exception ex)
{
    throw new Exception("Message");    
}

我基本上是在重新抛出异常,以便当worker完成时,UI线程将收到异常。 现在,如果在functionA中发生异常,我想抛出异常但继续循环而不是停止。我怎样才能做到这一点?

编辑:如果不清楚,可以通知用户界面已发生异常但未停止工作人员

1 个答案:

答案 0 :(得分:1)

这样的事情:

List<Exception> errorsLog = new List<Exception>();

for()
{
    try
    {
       functionA();
    }
    catch(Exception e) {
       errorsLog.Add(e);
    }

    try
    {
       functionB();
    }
    catch(Exception e) {
       errorsLog.Add(e);
    }
}

if (errorsLog.Count > 0) {
   throw new AggregateException(errorsLog);
}

AggregateException是您的自定义异常,其中包含其他异常列表。