ここで例外があります:
MyException はユーザー コードによって処理されませんでした
実際にやってみましたが、
問題とその解決方法は何ですか? 私が達成したいのは、parallel.All で囲まれた try catch によってキャッチされる例外を取得することです。現在、それは 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();
}
}
}