0
respostas

Como utilizar o assíncronismo em algo já existente

Pelo que entendi o assincronismo envolve basicamente três métodos:

  1. o método que eu não quero que fique com a execução bloqueada no caso abaixo o Metodo1();
  2. o método com o "async void" (ou Task<>, ou apenas Task) na assinatura, o Metodo2();
  3. o método chamado dentro de async com a palavra chave await antes da chamada, o Metodo3().

Com isso o método que não fica parado é o 1 pois o 2 ficará parado aguardando a conclusão do processamento no Metodo3(). Seria isso né? Corrijam me se estiver errado. E por isso teoricamente a saida deveria ser:

  1. Inicio do Metodo1();
  2. Início do Metodo2();
  3. Após a chamada do Metodo2();
  4. Após executar o Metodo3().

Exemplo:

public void Metodo1()
{
    Console.WriteLine("Início do Metodo1()");
    Metodo2();
    Console.WriteLine("Após a chamada do Metodo2()");
}

public async void Metodo2()
{
    Console.WriteLine("Início do Metodo2()");
    await Metodo3(); 
    Console.WriteLine("Após executar o Metodo3()");
}