Me deparei com um problema ( https://github.com/HTBox/allReady/issues/1313 ) no GitHub, onde eles discutiram sobre como tirar ConfigureAwait(false)
o código do código, alegando que, no ASP.NET Core
a chamada para
ConfigureAwait(false)
é redundante e não faz nada
O melhor que pude encontrar aqui é uma "observação lateral" em uma resposta (de Stephen Cleary, https://stackoverflow.com/a/40220190/2805831 ) dizendo que
ASP.NET Core não tem mais um "contexto"
Então, é ConfigureAwait(false)
realmente desnecessário no ASP.NET Core (mesmo usando o .NET Framework completo)? Tem algum ganho real de desempenho em alguns casos ou diferença no resultado / semântica?
EDIT: É diferente neste aspecto se eu estou hospedando-o como um aplicativo de console ou no IIS?
fonte
ConfigureAwait(false)
, pois a biblioteca pode ser consumida por diferentes aplicativos (ASP.NET Core, WPF, UWP, Console etc.)ConfigureAwait(false)
, embora seja relevante no ASP.NET clássico, não é de forma alguma necessário . É uma troca: meio que mitiga alguns deadlocks de sincronização sobre as sincronizações (que são falhas de design de qualquer maneira - eles não existem a menos que alguém faça algo estúpido) e ocasionalmente tem um aumento de desempenho de ~ microssegundos por não recarregar o contexto. Ao custo de não poder depender do contexto e de terConfigureAwait
tudo por meio de seu código. stackoverflow.com/questions/28221508/…