Esercizi C#

Eseguire più operazioni insieme con Task.WhenAll in C#

In questa lezione eseguirai insieme due operazioni asincrone indipendenti e attenderai che finiscano entrambe con Task.WhenAll.

Introduzione

Quando ci sono più operazioni asincrone che non dipendono l'una dall'altra, come chiamare due API diverse, non serve aspettare che una finisca per avviare la successiva. Task.WhenAll le esegue insieme e termina solo quando sono finite tutte.

Le due chiamate Fetch(20) e Fetch(22) partono subito, quindi i loro tempi di attesa si svolgono in parallelo invece che uno dopo l'altro. Task.WhenAll restituisce un array con i risultati nello stesso ordine delle operazioni, e la loro somma è 42.

Esempio C# eseguibile

C#
Esegui il codice →
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]);
    }
}
Risultato dell'esecuzione
42

Esercitati con il debugger

Metti un breakpoint su un'assegnazione o una condizione importante, fai clic su Debug ed esamina i valori locali prima di passare alla riga successiva.

Esercitati con una sfida

Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.

Tutte le sfide