Я смотрю на пример обработки исключений TPL из MSDN @
http://msdn.microsoft.com/en-us/library/dd537614(v=VS.100).aspx
Основная форма кода:
Task task1 = Task.Factory.StartNew(() => { throw new IndexOutOfRangeException(); });
try
{
task1.Wait();
}
catch (AggregateException ae)
{
throw ae.Flatten();
}
Мой вопрос: это состояние гонки? Что произойдет, если задача 1 сработает до того, как попытка будет выполнена? Я пропустил что-то, что мешает этой гонке?
Не следует ли вместо этого написать так:
try
{
Task task1 = Task.Factory.StartNew(() => { throw new IndexOutOfRangeException(); });
task1.Wait();
}
catch (AggregateException ae)
{
throw ae.Flatten();
}