Sollten wir standardmäßig auf asynchrone E / A umstellen?

Angesichts der Vorteile von asynchroner E / A und der einfachen Codierung und Komposition (mit Await und den TAP-Methoden) frage ich mich, ob wir standardmäßig asynchron verwenden und die Leistung nur dann optimieren sollten, wenn eine Synchronisierung erforderlich ist.

Async I / O gibt den aufrufenden Thread frei und ermöglicht es, etwas anderes zu tun, während auf das Ergebnis gewartet wird. Andererseits ist die asynchrone E / A etwas langsamer als die Synchronisierung.

Um reaktionsschnelle Benutzeroberflächen zu erzwingen, empfanden es die WinRT-Designer als akzeptabel, nur asynchrone Methoden anzubieten.

AFAIK Windows-Datei-E / A ist intern asynchron. Wenn ich das naiv betrachte, ist mir nicht klar, warum asynchrone Datei-E / A in .NET langsamer als überhaupt synchron sein sollten.

Ich bevorzuge im Allgemeinen Einfachheit und Robustheit und stimme nur bei Bedarf auf die Leistung ab. In der Vergangenheit haben wir standardmäßig die Synchronisierung verwendet, mit der Ausnahme, dass einige Dienste aufgerufen wurden und Plattformen wie das Telefon die asynchrone Synchronisierung erzwangen. Wir haben selten eine asynchrone Einstellung vorgenommen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage