Ich habe async
/await
schon seit geraumer Zeit verwendet, aber vor kurzem tiefer in die Materie eingetaucht und viele bewährte Tipps gelesen, die besagen, dass man standardmäßig immer ConfigureAwait(false)
verwenden sollte, um Deadlocks zu verhindern und die Leistung zu verbessern.
Ich möchte nur sicherstellen, dass ich nichts übersehe, wenn ich vermute, dass dies nur gilt, wenn tatsächlich ein aktueller SynchronizationContext
oder TaskScheduler
im Spiel ist, richtig?
Wenn ich eine Windows-Service-App habe, die auf Nachrichten/Befehle usw. asynchron antwortet, verwendet sie immer den Standard-Scheduler = wahrscheinlich wird der gleiche Threadpool-Thread, auf dem das Awaitable abgeschlossen wurde, die Fortsetzung ausführen, daher kann kein Deadlock auftreten und es gibt keinen Leistungsunterschied durch die Verwendung von ConfigureAwait(false)
, richtig?
Es ist nicht so, dass ich es dort nicht platzieren kann, aber ich hasse lauten Code so sehr...