Heim > Backend-Entwicklung > C++ > Async/Await in C#: Warten oder nicht warten? Die Auswirkungen auf die Ausführung

Async/Await in C#: Warten oder nicht warten? Die Auswirkungen auf die Ausführung

Susan Sarandon
Freigeben: 2025-01-12 13:22:43
Original
903 Leute haben es durchsucht

Async/Await in C#:  To Await or Not to Await?  The Impact on Execution

Verwendung von Async/Await in C#: Warten oder nicht warten? Auswirkungen auf die Ausführung

Der folgende Code enthält sechs Aufrufe der Callee-Methode, die jeweils auf unterschiedliche Weise ausgeführt werden:

  1. Asynchroner Aufruf (Fire-and-forget): Callee Die Methode wird asynchron aufgerufen und wartet nicht. Die Methode läuft asynchron im Hintergrund und die aufrufende Methode setzt die Ausführung sofort fort.

  2. Warten Sie auf einen asynchronen Aufruf: Die Callee-Methode wird aufgerufen und verwenden Sie await, um auf ihren Abschluss zu warten. Die aufrufende Methode wartet auf den Abschluss der Callee-Methode, bevor sie mit der Ausführung des nachfolgenden Codes fortfährt. Stellen Sie sicher, dass die Callee-Methode abgeschlossen ist, bevor Sie den Code danach ausführen.

  3. Asynchrone Aufrufe über Task.Run: Die Methode Callee wird über Task.Run gestartet, wartet aber nicht auf das Ergebnis. Wie im Fall 1 läuft die Methode Callee im Hintergrund und die aufrufende Methode setzt die Ausführung sofort fort.

  4. Verwenden Sie Task.Run und warten Sie auf den asynchronen Aufruf: Die Methode Callee wird mit Task.Run gestartet und auf das Ergebnis gewartet. Dies entspricht Fall 2, in dem die aufrufende Methode auf den Abschluss der Callee-Methode wartet, bevor sie fortfährt.

  5. Asynchroner Aufruf mit Task.Run und async: Gleich wie Fall 3, außer dass die Callee-Methode als async deklariert ist. Das Schlüsselwort async ermöglicht den asynchronen Aufruf einer Methode, auch wenn sie von Task.Run umschlossen ist.

  6. Verwenden Sie Task.Run und async und warten Sie auf den asynchronen Aufruf: Gleich wie Fall 4, außer dass die Callee-Methode als async deklariert ist. Ebenso ermöglicht das Schlüsselwort async eine Wartemethode, selbst wenn sie von Task.Run umschlossen ist.

Zusammenfassung: Die zugrunde liegende Logik dieser Aufrufe ist wie folgt:

  • Fall 1 und 3: Die Methode Callee läuft in einem Hintergrundthread und die aufrufende Methode setzt die Ausführung sofort fort.

  • Fall 2 und 4: Die aufrufende Methode wartet auf den Abschluss der Methode Callee, bevor sie den nachfolgenden Code ausführt.

  • Fall 5 und 6: Dies sind asynchrone Aufrufe, die Task.Run für zusätzliche Parallelverarbeitung verwenden. Das Schlüsselwort async ermöglicht jedoch das Warten auf sie bei Bedarf.

Das obige ist der detaillierte Inhalt vonAsync/Await in C#: Warten oder nicht warten? Die Auswirkungen auf die Ausführung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage