ExpertiDict

C# · Intermediário · Inglês · Técnico

Task.WhenAll

/tæsk ˈwɛn ɔl/substantivo

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

Veja também

Todos os termos de C#