TaskCanceledException в AggregateException не содержит трассировки стека

Я использую библиотеку параллельных задач для запуска задачи, которая при отмене создает исключение OperationCanceledException, которое затем перехватывается с помощью AggregateException следующим образом. AggregateException содержит список TaskCanceledExceptions, соответствующих выброшенным исключениям. К сожалению, эти TaskCanceledExceptions, похоже, теряют трассировку стека, созданную исходными исключениями. Это по дизайну?

try
{
    task1.Wait();
}
catch (AggregateException aggEx)
{
    var tcex = ex as TaskCanceledException;
    if (tcex != null)
    {
        Debug.WriteLine("InnerException:{0}, Message:{1}, Source:{2}, StackTrace: {3}",
            tcex.InnerException, tcex.Message, tcex.Source, tcex.StackTrace);

        return true;
    }
    else
    {
        return false;
    }
}

Результат:

InnerException:, Message:A task was canceled., Source:, StackTrace: 
6
задан CodeFox 8 August 2013 в 05:23
поделиться