Asynchronität bei Do-Work-Methoden: Task.Run vs. Async-Schlüsselwort
Im Bereich der asynchronen Programmierung ist die Unterscheidung zwischen asynchroner Ausführung und Erwartbarkeit kann nuanciert werden. Lassen Sie uns in die Besonderheiten von Task.Run und dem Schlüsselwort async eintauchen und ihre Rollen bei der Erstellung von Methoden verstehen, die entweder synchron oder asynchron ausgeführt werden.
Asynchrone Ausführung: Task.Run
Mit der Task.Run-Methode können Sie die Ausführung von Code an einen Hintergrundthread delegieren. Durch die Erstellung eines Task-Objekts, das den Code kapselt, ermöglicht Ihnen Task.Run, den Code asynchron auszuführen, ohne den aktuellen Ausführungspfad zu blockieren. Allerdings macht die Verwendung von Task.Run eine Methode nicht unbedingt erwartbar.
Erwartungsfähigkeit: Das Async-Schlüsselwort
Eine asynchrone Methode ist eine Methode, die beim Erwarten angehalten und fortgesetzt werden kann Ausdrücke. Dadurch können Methoden Ausführungspunkte ohne Blockierung an den aufrufenden Thread zurückgeben. Eine als asynchron deklarierte Methode kann einen Task oder einen Task
Beispiel: Ausführung ohne Async/Await
// Not async because it does not use await private Task<int> DoWorkAsync() { return Task.Run(() => { return 1 + 2; }); }
In diesem Beispiel geben wir eine Task
Beispiel: Asynchrone Ausführung mit Await
private async Task<int> GetWebPageHtmlSizeAsync() { var client = new HttpClient(); var html = await client.GetAsync("http://www.example.com/"); return html.Length; }
In diesem Beispiel die Methode wird als asynchron deklariert und verwendet „await“, um die Ausführung beim HttpClient.GetAsync-Vorgang anzuhalten. Die Methode wird dem Aufrufer zurückgegeben, während die Webseite heruntergeladen wird, und wird dann fortgesetzt, wenn das Ergebnis verfügbar ist.
Best Practices:
Fazit:
Task.Run erleichtert die asynchrone Ausführung, indem Code an einen Hintergrundthread delegiert wird. Das Schlüsselwort async ermöglicht die Erwartbarkeit und ermöglicht es Methoden, die Ausführung anzuhalten und fortzusetzen, was die Flexibilität bietet, reaktionsfähigen und effizienten Code zu erstellen.
Das obige ist der detaillierte Inhalt vonTask.Run vs. Async-Schlüsselwort: Wann sollte jedes für asynchrone Vorgänge verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!