Asynchrones Programmieren (async & await)

Asynchrone Programmierung ist entscheidend für moderne Anwendungen. Sie verhindert, dass die Benutzeroberfläche blockiert, während das Programm auf zeitintensive Aufgaben wie Netzwerkabfragen oder Dateizugriffe wartet.

1. Grundlagen: async & await

In C# markieren Sie eine Methode mit dem Modifikator async. Innerhalb dieser Methode nutzen Sie await, um auf einen Task zu warten.

using System.Threading.Tasks;

// Eine asynchrone Methode, die einen String zurückgibt
public async Task<string> LadeDatenAsync()
{
            // Simuliert eine Verzögerung von 2 Sekunden
            await Task.Delay(2000);
    
            return "Daten geladen";
}

2. Asynchrone Methoden aufrufen

Um eine asynchrone Methode aufzurufen, muss die aufrufende Methode ebenfalls als async markiert sein.

public async void OnButtonClick()
{
            // Der Thread wird hier nicht blockiert
            string ergebnis = await LadeDatenAsync();
    
            Console.WriteLine(ergebnis);
}

3. Warum asynchron?

  • Responsivität: Die Anwendung bleibt für Benutzereingaben empfänglich.
  • Durchsatz: Ein Webserver kann mehr Anfragen gleichzeitig bearbeiten.
  • Ressourcenschonung: Threads werden freigegeben, während sie auf I/O-Operationen warten.
Zurück zu Modul 5 Übersicht Weiter zu Modul 7: I/O