WPF从工作线程引发异常,但是否继续

WPF从工作线程引发异常,但是否继续,wpf,Wpf,我有一个场景,工作线程执行的任务 try { for() { functionA(); functionB(); } } catch(Exception ex) { throw new Exception("Message"); } 我基本上是重新抛出异常,这样当工作线程完成时,UI线程将收到异常。 现在,如果在function中发生异常,我想抛出异常,但继续循环,而不是停止。我怎样才能做到这一点 编辑:如果不清

我有一个场景,工作线程执行的任务

try
{    
    for()
    {
        functionA();
        functionB(); 
    }
}
catch(Exception ex)
{
    throw new Exception("Message");    
}
我基本上是重新抛出异常,这样当工作线程完成时,UI线程将收到异常。 现在,如果在
function
中发生异常,我想抛出异常,但继续循环,而不是停止。我怎样才能做到这一点

编辑:如果不清楚,则可以通知UI发生异常,但不会停止工作进程,如下所示:

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);
}
List errorsLog=new List();
for()
{
尝试
{
functional();
}
捕获(例外e){
错误代码添加(e);
}
尝试
{
函数b();
}
捕获(例外e){
错误代码添加(e);
}
}
如果(errorsLog.Count>0){
抛出新的AggregateException(errorsLog);
}

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

functionB
至关重要。如果
functionB
引发异常,我必须退出。此外,必须立即通知UI Function中发生了错误,而不是在所有异常都完成之后。在这种情况下,不要将异常添加到列表中,只需使用dispatcher在UI线程中重新抛出它们:Application.Current.dispatcher.BeginInvoke(新操作(()=>throw MyAsyncException(e)))。工作线程正在另一个项目上运行。Application.Current.Dispatcher在上下文中没有意义:(那么您应该创建类似IExeptionReportingService的内容。此接口将位于某个公共程序集中,并且实现将位于了解Application.Current.Dispatcher的UI程序集中。