C# · Intermediário · Inglês · Técnico
Task.WhenAll
Método que devolve uma Task concluída quando todas as tasks recebidas terminam, permitindo disparar operações independentes em paralelo e aguardar o conjunto com um único await.
Onde usar
Aparece ao buscar dados de várias fontes ao mesmo tempo, em vez de dar await em cada chamada em sequência. Se várias falharem, o await lança só a primeira exceção; as demais ficam em task.Exception.
Em código
var a = BuscarAsync("a");
var b = BuscarAsync("b");
string[] r = await Task.WhenAll(a, b);
Console.WriteLine(string.Join(",", r));
Task<string> BuscarAsync(string k)
=> Task.FromResult(k);Exemplos
Use Task.WhenAll to call both services at once.
Use Task.WhenAll para chamar os dois serviços ao mesmo tempo.
Task.WhenAll only rethrows the first exception.
O Task.WhenAll só relança a primeira exceção.
Cuidado
Não confunda com WhenAny, que conclui assim que a primeira task termina.
Antônimos
Task.WhenAny