Я, вероятно, упускаю очень очевидный факт, но мне трудно понять необходимость AggregatedExceptions.
Я знаю, что с async / await нам больше не нужно беспокоиться об AggregatedExceptions (или, по крайней мере, сталкиваются с ними реже). Я могу относиться к этому, потому что я просто запускаю задачу и иногда решаю синхронизировать «вызывающий поток» с «задачей, которая выполняется параллельно»
var sometTask = DoSomethingInParallelAsync().ConfigureAwait(false);
...
...
await someTask;
В этом сценарии исключение, котороеПроизошедшее в DoSomethingInParallelAsync()
будет представлено мне, когда я буду ждать этого звонка.
Почему это так отличается без с использованием await
, но Wait
в Task
явно?
var someTask = DoSomethingInParallelAsync();
...
...
someTask.Wait();
Исключение, выброшенное в этом примере, всегда будет переносить брошенный Exception
в AggregateException
. Я до сих пор не понимаю, почему.
Что я не могу сделать при использовании async / await, который устраняет необходимость в AggregateException
s?