Task.WhenAny y excepciones no observadas

Digamos que tengo tres tareas,a, byc. Los tres están garantizados para lanzar una excepción en un tiempo aleatorio entre 1 y 5 segundos. Luego escribo el siguiente código:

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

En última instancia, esto generará una excepción de las faltas de tarea primero. Ya que no haytry...catch Aquí, esta excepción irá a otro lugar en mi código.

¿Qué sucede cuando las dos tareas restantes lanzan una excepción? ¿No son estas excepciones no observadas, que causarán la muerte de todo el proceso? ¿Significa eso que la única manera de usarWhenAny está dentro de untry...catch ¿Bloquear y luego observar de alguna manera las dos tareas restantes antes de continuar?

Seguir: Me gustaría que la respuesta se aplicara a .NET 4.5y .NET 4.0 con Async Targeting Pack (aunque claramente usandoTaskEx.WhenAny en ese caso).

Respuestas a la pregunta(2)

Su respuesta a la pregunta