Zadanie. Gdy wszystko i niezauważone wyjątki

Powiedzmy, że mam trzy zadania,a, b, ic. Wszystkie trzy gwarantują wyjątek w losowym czasie od 1 do 5 sekund. Następnie piszę następujący kod:

await Task.WhenAny(a, b, c);

To ostatecznie wyrzuci wyjątek od tego, które zadanie nie powiedzie się jako pierwsze. Ponieważ nie matry...catch tutaj ten wyjątek pojawi się w innym miejscu mojego kodu.

Co się stanie, gdy pozostałe dwa zadania rzucą wyjątek? Czy te niezauważone wyjątki nie spowodują śmierci całego procesu? Czy to oznacza, że ​​jedyny sposób korzystaniaWhenAny jest wewnątrz atry...catch blok, a następnie jakoś obserwować pozostałe dwa zadania przed kontynuowaniem?

Kontynuacja: Chciałbym, aby odpowiedź miała zastosowanie zarówno do .NET 4.5i .NET 4.0 z pakietem Async Targeting Pack (choć wyraźnie używanyTaskEx.WhenAny w tym wypadku).

questionAnswers(2)

yourAnswerToTheQuestion