C# · Avançado · Inglês · Técnico
ConfigureAwait
Método de Task que controla se a continuação após o await volta ao contexto de sincronização capturado. ConfigureAwait(false) a executa em qualquer thread disponível do pool.
Onde usar
Aparece em bibliotecas de uso geral, onde ConfigureAwait(false) evita deadlocks e o custo de voltar à UI. Em aplicações ASP.NET Core não há contexto de sincronização, então o efeito costuma ser nulo.
Em código
async Task<string> LerAsync(string path)
{
var t = await File.ReadAllTextAsync(path)
.ConfigureAwait(false);
return t.ToUpper();
}Exemplos
In the library we add ConfigureAwait(false).
Na biblioteca, adicionamos ConfigureAwait(false).
ASP.NET Core has no sync context, so ConfigureAwait does nothing there.
O ASP.NET Core não tem contexto de sincronização, então o ConfigureAwait não faz nada ali.
Cuidado
Não use em código de UI que atualiza controles depois do await: a continuação sairia da thread da interface.