Wie funktioniert eine asynchrone Methode in C#?
sobes.tech KI
Antwort von AI
Die asynchrone Methode in C# ermöglicht die Ausführung von Operationen, die längere Zeit in Anspruch nehmen können (z.B. Ein- und Ausgabe, Netzwerk-Anfragen), ohne den Hauptausführungsthread zu blockieren.
Beim Aufruf einer mit dem Schlüsselwort async gekennzeichneten asynchronen Methode wird die Steuerung an den aufrufenden Code übergeben, bis die asynchrone Operation abgeschlossen ist. Die Operation läuft im Hintergrund (z.B. unter Verwendung eines Thread-Pools oder System-I/O-Mechanismen).
Das Schlüsselwort await innerhalb der asynchronen Methode gibt an, wo die asynchrone Operation unterbrochen werden kann. Wenn die Ausführung await erreicht, wird die Steuerung an den aufrufenden Code zurückgegeben, und die Fortsetzung der Methode wird geplant, sobald die erwartete Operation beendet ist.
Das Ergebnis der asynchronen Operation (oder eine Ausnahme) wird dann an die Fortsetzung der asynchronen Methode zurückgegeben, wo es verarbeitet wird. Der Zustand der asynchronen Methode wird automatisch vom C#-Compiler verwaltet, der sie in eine endliche Automatmaschine umwandelt.
public async Task<string> GetDataAsync(string url)
{
// Simulation einer längeren Ein- und Ausgabeoperation
using (var httpClient = new HttpClient())
{
string result = await httpClient.GetStringAsync(url); // await: die Ausführung der Methode kann unterbrochen werden
return result;
}
}
// Beispiel für den Aufruf einer asynchronen Methode
public async Task ProcessDataAsync(string url)
{
Console.WriteLine("Beginn des Datenladens...");
string data = await GetDataAsync(url); // Warten auf Abschluss der asynchronen Operation
Console.WriteLine("Daten geladen: " + data.Length + " Zeichen.");
}