I'm reading through a book about the C# Task Parallel Library and have the following example but the TaskScheduler.UnobservedTaskException handler is never being triggered. Can anyone give me any clues as to why?
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();
}