Dans ce code :
private async void button1_Click(object sender, EventArgs e) {
try {
await Task.WhenAll(DoLongThingAsyncEx1(), DoLongThingAsyncEx2());
}
catch (Exception ex) {
// Expect AggregateException, but got InvalidTimeZoneException
}
}
Task DoLongThingAsyncEx1() {
return Task.Run(() => { throw new InvalidTimeZoneException(); });
}
Task DoLongThingAsyncEx2() {
return Task.Run(() => { throw new InvalidOperation();});
}
Je m'attendais WhenAll
pour créer et lancer un AggregateException
car au moins une des tâches qu'il attendait a déclenché une exception. Au lieu de cela, je reçois une seule exception lancée par l'une des tâches.
Fait WhenAll
ne crée pas toujours un AggregateException
?