Heim > Backend-Entwicklung > C++ > Await vs. Task.Result: Wann sollte ich jedes in C# verwenden?

Await vs. Task.Result: Wann sollte ich jedes in C# verwenden?

Barbara Streisand
Freigeben: 2025-01-22 23:24:12
Original
956 Leute haben es durchsucht

Await vs. Task.Result: When Should I Use Each in C#?

Best Practices von Await und Task.Result in der asynchronen C#-Programmierung

Asynchrone Programmierung in C# umfasst häufig Aufgaben, die lang laufende Arbeitseinheiten kapseln. Zwei gängige Methoden zur Bearbeitung von Aufgaben sind await und Task.Result. Obwohl beide ähnliche Ergebnisse erzielen können, gibt es subtile Unterschiede in ihrem Verhalten.

Das Schlüsselwort

await unterbricht die Ausführung der aktuellen Methode, bis die wartende Aufgabe abgeschlossen ist. Bei einer vollständig abgeschlossenen Aufgabe gibt der await-Ausdruck direkt das Ergebnis der Aufgabe zurück, wodurch der Code sauberer wird und möglicherweise die Leistung verbessert wird.

Im Gegensatz dazu ruft Task.Result die Ergebnisse der Aufgabe sofort ab. Wenn die Aufgabe fehlschlägt, wird eine AggregateException-Ausnahme ausgelöst und kann in einigen asynchronen Szenarien zu einem Deadlock führen. Daher wird generell empfohlen, await anstelle von Task.Result zu verwenden.

Stephen Cleary empfiehlt die Verwendung von await anstelle von Task.Result, hauptsächlich aus den folgenden zwei Gründen:

  1. Ausnahmebehandlung: await schließt Ausnahmen nicht in AggregateException ein, was die Fehlerverwaltung in asynchronem Code vereinfacht.
  2. Deadlocks vermeiden: Result und Wait können Deadlocks verursachen, insbesondere wenn sie innerhalb einer asynchronen Methode verwendet werden. await Beseitigen Sie dieses Risiko, indem Sie sicherstellen, dass die Aufgabe abgeschlossen ist, bevor Sie mit der Ausführung fortfahren.

Gebrauchsanweisung:

Wie von Cleary empfohlen, gelten die folgenden Richtlinien für die Verwendung von Result, Wait und await:

  • Asynchroner Anwendungscode: Immer await verwenden.
  • Asynchroner Dienstprogrammcode: Result und Wait können mit Vorsicht und entsprechender Dokumentation verwendet werden.
  • Parallele Aufgabencodes: Result und Wait sind geeignet.

Das Befolgen dieser Richtlinien stellt die korrekte Handhabung von asynchronem Code sicher, minimiert Deadlocks und vereinfacht die Fehlerbehandlung.

Das obige ist der detaillierte Inhalt vonAwait vs. Task.Result: Wann sollte ich jedes in C# verwenden?. 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