DEV Community

Gustavo Inocencio
Gustavo Inocencio

Posted on

2

Programacão assíncrona no C#

A programação assíncrona é importante nos nossos sistemas, pois caso fosse necessário aguardar cada processo, a experiência do usuário seria afetada com o bloqueio de todos os processos.

A aplicação não responderia e o usuário concluiria que houve uma falha ao invés de estar apenas aguardando o fim do processo.

Quando são utilizados métodos assíncronos a aplicação continua a responder.

Essa alternativa é importante para funções que demandam tempo de resposta como uma consulta a uma API ou uma gravação de documentos.

Para utilizar facilmente o recurso de programacão assíncrona as características a seguir resumem bem o que um método assíncrono necessita:

  • A assinatura do método inclui um modificador async

  • Por convenção o nome de um método assíncrono termina com o sufixo Async

  • O tipo do retorno é um dos seguintes:

      1. Task<TResult>
      2. Task 
      3. void 
Enter fullscreen mode Exit fullscreen mode

O primeiro caso ocorre quando o método contém um retorno especificando seu tipo como por exemplo int

Para o caso de métodos que não contém um retorno é usado o Task.

O último caso é usado para event handlers

  • O método deve incluir ao menos um operador await que marca o ponto onde o método não pode continuar até que a operação assíncrona seja finalizada.

Exemplo utilizando as características mencionadas:

public async Task<int> GetUrlContentLengthAsync()
{
    var client = new HttpClient();

    Task<string> getStringTask =
        client.GetStringAsync("https://docs.microsoft.com/dotnet");

    DoIndependentWork();

    string contents = await getStringTask;

    return contents.Length;
}

void DoIndependentWork()
{
    Console.WriteLine("Working...");
}

Enter fullscreen mode Exit fullscreen mode

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post