我在这里遇到了一个例外:
MyException 未被用户代码处理
事实上我已经尝试过了,但是
问题是什么以及如何解决?我想要实现的是让异常被try catch包围parallel.All捕获。现在,它不知道 try catch,并提示我用户代码未处理异常。请注意,我需要该TestParallel1
方法引发异常,因为这是我拥有的程序的简化格式。给定一个例外,我希望立即停止所有其他线程。此外,我希望异常传播到并行之外。
namespace WindowsFormsApplication1
{
static class Program
{
public static void Main()
{
try
{
List<Action> act = new List<Action>
{
()=>TestParallel1(),
() => TestParallel1()
};
Parallel.Invoke(act.ToArray());
}
catch (AggregateException ae)
{
foreach (var e in ae.InnerExceptions) // note the 's' in InnerExceptions
{
//do something with 'e'
}
//do something
}
}
public class MyException : Exception
{
}
public static void TestParallel1()
{
throw new MyException();
}
}
}