ExpertiDict

C# · Avançado · Inglês · Técnico

ConfigureAwait

/kənˈfɪɡjɚ əˈweɪt/substantivo

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.

Veja também

Todos os termos de C#