в данный момент я пробую некоторые из новых функций параллельной библиотеки задач,
поставляется с .Net Framework 4.0 Beta 2.
Мой вопрос относится конкретно к обработке исключений в TPL как
описано здесь:
http://msdn.microsoft.com/en-us/library/dd997415%28VS.100%29.aspx
Первый пример (немного изменил):
static void Main(string[] args)
{
var task1 = Task.Factory.StartNew(() =>
{
throw new Exception("I'm bad, but not too bad!"); // Unhandled Exception here...
});
try
{
task1.Wait(); // Exception is not handled here....
}
catch (AggregateException ae)
{
foreach (var e in ae.InnerExceptions)
{
Console.WriteLine(e.Message);
}
}
Console.ReadLine();
}
Согласно документации исключение должно распространяться обратно
к присоединяющейся ветке, которая вызывает: task1.Wait()
.
Но я всегда получаю необработанное исключение в течение:
var task1 = Task.Factory.StartNew(() =>
{
throw new MyCustomException("I'm bad, but not too bad!");
});
Может ли кто-нибудь объяснить мне, почему, или кто-то знает, если что-то изменилось после выпуска Бета-версии 2?