C# · Avançado · Inglês · Técnico
async state machine
Estrutura que o compilador gera para cada método async: guarda variáveis locais e o ponto de retomada, avançando a cada await até a conclusão.
Onde usar
Aparece ao ler IL em ferramentas como o ILSpy ou ao analisar alocações de um método async. Saber que cada método async ganha uma máquina de estados ajuda a entender custos e por que o ValueTask existe.
Em código
async Task RodarAsync()
{
Console.WriteLine("antes");
await Task.Delay(10); // ponto de retomada
Console.WriteLine("depois");
}
// o compilador gera <RodarAsync>d__0Exemplos
The compiler turns each async method into a state machine.
O compilador transforma cada método async em uma state machine.
I found the async state machine in the decompiled IL.
Achei a async state machine no IL descompilado.
Cuidado
Não imagine que await cria threads: a máquina de estados só registra a continuação e devolve o controle ao chamador.
Sinônimos
máquina de estados