In ASP.NET (classic), when configuring an await to be ConfigureAwait(false)
the default context is used to resume execution after the await instead of AspNetSynchronizationContext
.
According to this article (table two thirds down) AspNetSynchronizationContext
is implemented to execute one continuation at a time. The default SynchronizationContext
executes continuations in parallel, potentially in more than one thread at a time.
So my question is, based on this information, is it true that applying ConfigureAwait(false) can potentially cause continuations to run in parallel, occupying multiple threads at a time for a single http request?
As an aside, after reading this article on SynchronizationContext
in ASP.NET Core, Stephen warns of the implicit parallelism because there is no AspNetSynchronizationContext
.