Ich bin über ein Problem gestolpert ( bei GitHub https://github.com/HTBox/allReady/issues/1313 ), bei dem es darum ging, ConfigureAwait(false)
den Code in ASP.NET Core zu entfernen und dies zu behaupten
Der Aufruf von
ConfigureAwait(false)
ist redundant und führt zu nichts
Das Beste, was ich hier finden konnte, ist eine „Randnotiz“ in einer Antwort (von Stephen Cleary, https://stackoverflow.com/a/40220190/2805831 ), die dies sagt
ASP.NET Core hat keinen "Kontext" mehr
Also, ist ConfigureAwait(false)
wirklich unnötig in ASP.NET - Core (auch wenn vollständige .NET Framework)? Hat es in einigen Fällen einen echten Leistungsgewinn oder einen Unterschied im Ergebnis / in der Semantik?
BEARBEITEN: Ist es in diesem Aspekt anders, wenn ich es als Konsolenanwendung oder in IIS hoste?
ConfigureAwait(false)
, dass dies in ASP.NET classic zwar relevant , aber keinesfalls erforderlich ist . Es ist ein Kompromiss: Es mildert einige Sync-over-Async-Deadlocks (die sowieso Designfehler sind - sie existieren nur, wenn jemand etwas Dummes tut) und hat gelegentlich eine Leistungssteigerung von ~ Mikrosekunden, indem der Kontext nicht neu geladen wird. Auf Kosten, nicht vom Kontext abhängig zu sein und ConfigureAwait
alles durch Ihren Code zu haben. stackoverflow.com/questions/28221508/…
ConfigureAwait(false)
, da die Bibliothek von verschiedenen Anwendungen (ASP.NET Core, WPF, UWP, Konsole usw.) verwendet werden kann