Wenn eine Methode als 'async' deklariert ist, können wir sie beim Aufruf dieser Methode verwenden oder nicht verwenden. Ich möchte wissen, wann ich es verwenden soll und welche Wirkung es hat.Wann verwenden Sie das Schlüsselwort await
Antwort
Das async-Schlüsselwort ist nur ein Hinweis für den Compiler, dass die Methode eine wait-Anweisung enthalten kann.
Es ist ein interessanter Beitrag von Eric Lippert erklärt die Designwahl
Erfordern „async“ bedeutet, dass wir alle die Abwärtskompatibilität Probleme auf einmal zu beseitigen; Jede Methode, die einen -Awarterausdruck enthält, muss Code für "neue Konstruktion" sein, nicht Code für "alte Arbeit", da Code für "alte Arbeit" nie einen Async-Modifikator hatte.
http://blogs.msdn.com/b/ericlippert/archive/2010/11/11/whither-async.aspx
Die markierte async Verfahren erwarten verwenden typischerweise Aufhängepunkte zu bezeichnen. Der Operator "wait" teilt dem Compiler mit, dass die asynchrone Methode nicht über diesen Punkt hinaus fortgesetzt werden kann, bis der erwartete asynchrone Prozess abgeschlossen ist. In der Zwischenzeit kehrt die Steuerung zum Aufrufer der asynchronen Methode zurück.
in anderen Worten, wenn Sie asyncronius Programmierung tun und wollen simultaniusly bestimmten Thread Task ausgeführt würden Sie auf async verlassen wollen und erwarten
nähere Erläuterungen sind hier
http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx
- 1. Wann würden Sie das Schlüsselwort $ this in PHP verwenden?
- 2. Wann sollte ich das Schlüsselwort "strictfp" in Java verwenden?
- 3. Wann müssen wir das externe Alias-Schlüsselwort in C# verwenden?
- 4. Verwenden Sie das JavaScript dieses Schlüsselwort
- 5. C# USING Schlüsselwort - wann und wann nicht?
- 6. Wann sollte das Schlüsselwort "as" und wann() Casting verwendet werden?
- 7. Wann haben Sie C++ 'veränderbares' Schlüsselwort verwendet?
- 8. Verwenden Sie async/await oder etwas anderes
- 9. Warum das Schlüsselwort void verwenden?
- 10. Wann Pass Ref Schlüsselwort in
- 11. Wann das abstrakte Fabrikmuster verwenden?
- 12. Wann ist das Schlüsselwort "inline" in C wirksam?
- 13. Wann verwenden Sie Tabellencluster?
- 14. Können Sie das Schlüsselwort params in einem Delegaten verwenden?
- 15. Verwenden Sie das Schlüsselwort auto in C++ STL
- 16. Verwenden von ThreadStatic-Variablen mit async/await
- 17. Async/Await ohne await
- 18. Wann ist das Schlüsselwort do in Ruby erforderlich?
- 19. Was ist der Hauptunterschied zwischen dem Zurückgeben einer Aufgabe durch das await-Schlüsselwort und dem Zurückgeben ohne awaise-Schlüsselwort?
- 20. Wann zu verwenden und wann nicht Python 3.5 `erwarten 'verwenden?
- 21. Java - Wann dieses '' 'Schlüsselwort verwendet werden soll
- 22. Müssen wir immer ein asynchrones Schlüsselwort verwenden?
- 23. Wann muss ich Anfangs-/Endblöcke und das Schlüsselwort Go in SQL Server verwenden?
- 24. Wann verwenden Sie die Klammererweiterung?
- 25. Wann verwenden Sie die Abhängigkeitsinjektion?
- 26. Verwenden Sie nicht 'System.Runtime.CompilerServices.DynamicAttribute'. Verwenden Sie die ‚dynamische‘ Schlüsselwort statt
- 27. Wann würden Sie XamlServices.Transform() verwenden?
- 28. Wann verwenden Sie in swift?
- 29. Wann verwenden Sie private Methoden?
- 30. Perl: Wann verwenden Sie System() und wann installieren Sie das Paket?
Du bist Sie nähern sich rückwärts: Sie sollten 'async' nur verwenden, wenn Sie' wait' benötigen. Sie verwenden 'erwarten', wenn Sie asynchron auf eine Operation warten müssen. –