我正在通讀一本關於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