O que é ConfigureAwait?
O que é ConfigureAwait?

Vídeo: O que é ConfigureAwait?

Vídeo: O que é ConfigureAwait?
Vídeo: ConfigureAwait - Entenda como funciona o ConfigureAwait(false) do .Net 2024, Novembro
Anonim

ConfigureAwait (falso) envolve uma tarefa que já está concluída no momento em que é esperada (o que é realmente incrivelmente comum), então o ConfigureAwait (false) não terá sentido, pois o thread continua a executar código no método depois disso e ainda no mesmo contexto que estava lá anteriormente.

Posteriormente, também se pode perguntar, qual é o uso de ConfigureAwait false?

ConfigureAwait ( falso ) configura a tarefa para que a continuação após o await não precise ser executada no contexto do chamador, evitando, portanto, quaisquer possíveis deadlocks.

Além disso, o que é SynchronizationContext? SynchronizationContext é uma representação do ambiente atual em que nosso código está sendo executado. Ou seja, em um programa assíncrono, quando delegamos uma unidade de trabalho a outro thread, capturamos o ambiente atual e o armazenamos em uma instância de SynchronizationContext e coloque-o no objeto Tarefa.

Levando isso em consideração, para que serve ConfigureAwait?

Usando ConfigureAwait (false) para evitar deadlocks é uma prática perigosa. Deverias ter use ConfigureAwait (falso) para cada espera no fechamento transitivo de todos os métodos chamados pelo código de bloqueio, incluindo todos os códigos de terceiros e de terceiros. Usando ConfigureAwait (false) para evitar deadlock é, na melhor das hipóteses, apenas um hack).

O que é GetAwaiter?

GetAwaiter (), que retorna uma instância que possui um método GetResult (). Quando usado em uma Tarefa com falha, GetResult () propagará a exceção original (é assim que “espera tarefa;” obtém seu comportamento). GetResult () porque preserva as exceções de tarefa em vez de envolvê-las em uma AggregateException.

Recomendado: