Exercícios de C#

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

C#
Rodar código →
Program.cs
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]);
    }
}
Resultado da execução
42

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

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