Executar várias tarefas ao mesmo tempo com Task.WhenAll em C#
Nesta lição, você vai executar ao mesmo tempo duas tarefas assíncronas independentes e esperar as duas terminarem com Task.WhenAll.
Introdução
Quando há várias tarefas assíncronas que não dependem umas das outras, como chamar duas APIs diferentes, não é preciso esperar uma terminar para começar a próxima. Task.WhenAll executa todas ao mesmo tempo e só termina quando todas tiverem terminado.
As duas chamadas, Fetch(20) e Fetch(22), começam imediatamente, então os tempos de espera acontecem em paralelo, e não um depois do outro. Task.WhenAll retorna um array com os resultados na mesma ordem das tarefas, e a soma deles é 42.
Exemplo de C# executável
using System;
using System.Threading.Tasks;
class Program
{
static async Task<int> Fetch(int value) { await Task.Delay(20); return value; }
static async Task Main()
{
int[] results = await Task.WhenAll(Fetch(20), Fetch(22));
Console.WriteLine(results[0] + results[1]);
}
}
42Pratique com o depurador
Pratique com um desafio
Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.
Todos os desafios