C#-Übungen

Mehrere Aufgaben gleichzeitig mit Task.WhenAll ausführen in C#

In dieser Lektion führst du zwei unabhängige asynchrone Aufgaben gleichzeitig aus und wartest mit Task.WhenAll, bis beide fertig sind.

Einführung

Gibt es mehrere asynchrone Aufgaben, die nicht voneinander abhängen, etwa Aufrufe zweier verschiedener APIs, musst du nicht warten, bis eine fertig ist, bevor die nächste startet. Task.WhenAll führt sie gleichzeitig aus und ist erst abgeschlossen, wenn alle fertig sind.

Die beiden Aufrufe Fetch(20) und Fetch(22) starten sofort, deshalb laufen ihre Wartezeiten parallel statt nacheinander ab. Task.WhenAll gibt ein Array mit den Ergebnissen in der Reihenfolge der Aufgaben zurück, und ihre Summe ist 42.

Ausführbares C#-Beispiel

C#
Code ausführen →
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]);
    }
}
Ergebnis der Ausführung
42

Mit dem Debugger üben

Setze einen Haltepunkt auf eine wichtige Zuweisung oder Bedingung, klicke auf Debug und sieh dir die lokalen Werte an, bevor du zur nächsten Zeile gehst.

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges