我正在通读一本关于C#任务并行库的书,并且有以下示例,但TaskScheduler.UnobservedTaskException处理程序永远不会被触发。任何人都可以给我任何线索,为什么?TaskScheduler.UnobservedTaskException事件处理程序永远不会被触发
TaskScheduler.UnobservedTaskException += (object sender, UnobservedTaskExceptionEventArgs eventArgs) =>
{
eventArgs.SetObserved();
((AggregateException)eventArgs.Exception).Handle(ex =>
{
Console.WriteLine("Exception type: {0}", ex.GetType());
return true;
});
};
Task task1 = new Task(() =>
{
throw new ArgumentNullException();
});
Task task2 = new Task(() => {
throw new ArgumentOutOfRangeException();
});
task1.Start();
task2.Start();
while (!task1.IsCompleted || !task2.IsCompleted)
{
Thread.Sleep(5000);
}
Console.WriteLine("done");
Console.ReadLine();
这是什么书? – 2010-07-19 19:06:28
我真的很好奇 - 这个例子是不正确的,因为在这个例子中不可能提出这个事件... – 2010-07-19 19:26:58
这是这本书:http://www.apress.com/book/view/1430229675 C#中的.NET .NET 4并行编程# – devlife 2010-07-20 13:48:49