ConfigureAwait(false) relevant in ASP.NET Core?
I stumbled on an issue (https://github.com/HTBox/allReady/issues/1313) at GitHub where they discussed about taking the ConfigureAwait(false)
out of the code, claiming that, in ASP.NET Core
the call to
ConfigureAwait(false)
is redundant and does nothing
Best I could find here is a “side note” in an answer (from Stephen Cleary, https://stackoverflow.com/a/40220190/2805831) telling that
ASP.NET Core no longer has a "context"
So, is ConfigureAwait(false)
really unnecessary in ASP.NET Core (even if using full .Net Framework)? Does it have any real gain in performance in some cases or difference in the result/semantic?
EDIT: Is it different in this aspect if I am hosting it as a console application or in IIS?
Solution 1:
ConfigureAwait
only has effects on code running in the context of a SynchronizationContext
which ASP.NET Core doesn't have (ASP.NET "Legacy" does).
General purpose code should still use it because it might be running with a SynchronizationContext
.
ASP.NET Core SynchronizationContext