public static async Task Main()
{
await Task.WhenAny(
Task.WhenAll(
Task.Run(() => throw new Exception("This exception is lost")),
Task.Run(() => Task.Delay(100))),
Task.Run(() => Task.Delay(1000)));
await Task.WhenAll(
Task.Run(() => Task.Delay(100)),
Task.Run(() => throw new Exception("This exception is reported")));
}
Я пытаюсь добавить тайм-аут для ожидания нескольких задач, окружив Task.WhenAll вызовом Task.WhenAny с задачей тайм-аута. Неожиданно я не получаю исключений.
Первое исключение не блокирует выполнение: [code] public static async Task Main() { await Task.WhenAny( Task.WhenAll( Task.Run(() => throw new Exception("This exception is lost")), Task.Run(() => Task.Delay(100))), Task.Run(() => Task.Delay(1000)));
await Task.WhenAll( Task.Run(() => Task.Delay(100)), Task.Run(() => throw new Exception("This exception is reported"))); } [/code] Я пытаюсь добавить тайм-аут для ожидания нескольких задач, окружив Task.WhenAll вызовом Task.WhenAny с задачей тайм-аута. Неожиданно я не получаю исключений.