Como usar async e aguardar em C#

Como usar async e aguardar em C#
Async e aguardam são métodos poderosos em C# que permitem executar operações demoradas sem bloquear o tópico principal. Uma das principais funções de C# que suporta programação assíncrona é o assíncrono () e aguardar (). Este artigo explicará o que são assíncronos e aguardados e como eles são usados ​​na programação C#.

O que é assíncrono em C#

O método async () funciona de forma síncrona até chegar à sua primeira expressão. O Async () é usado antes do tipo de retorno do método, e a assinatura do método deve retornar um objeto de tarefa ou tarefa, onde t é o tipo do valor que o método retorna.

assíncrono ()

// aguarda de forma assíncrona que alguma operação seja concluída
// retorna um objeto de tarefa ou tarefa

Aqui estão os mudanças na sintaxe:

  • : O tipo de retorno do método, isso pode ser qualquer tipo de dados C# válido.
  • : O nome do método.
  • : Os parâmetros do método. Estes podem ser todos os tipos de dados C# válidos.

O que se espera em C#

O Await () é usado para pausar a execução do método até que a operação assíncrona seja concluída, aqui está a sintaxe para esta função:

aguardam

Aqui estão os mudanças na sintaxe:

  • : O tipo do resultado de que a operação assíncrona retorna.
  • : A variável que armazena o resultado da operação assíncrona.
  • : O método chamado que executa a operação assíncrona.

Como usar async e aguardar em C#

Usando assíncronos e aguardadores, você pode criar código mais responsivo e eficiente, pois libera o tópico principal para lidar com outras operações enquanto as operações assíncronas estão em execução em segundo plano. Abaixo está o código de exemplo que usa async e aguardam e demonstra como usar async e aguardar operações assíncronas não bloqueadoras em C#.

usando o sistema;
usando o sistema.Rosqueamento.Tarefas;
programa de classe

estático void main (string [] args)

Console.WriteLine ("comece a calcular");
// inicia uma tarefa para adicionar 2 e 3 assíncronos
Tarefa tarefa1 = addasync (2, 3);
Console.WriteLine ("Adicionando ...");
// inicie uma tarefa para subtrair 5 de 10 assíncronos
Tarefa de tarefa2 = subtração (10, 5);
Console.WriteLine ("Subtração ...");
// Aguarde a primeira tarefa concluir e obtenha o resultado
int resultado1 = tarefa1.Resultado;
Console.WriteLine ($ "2 + 3 = resultado1");
// Aguarde a segunda tarefa concluir e obtenha o resultado
int resultado2 = task2.Resultado;
Console.WriteLine ($ "10 - 5 = resultado2");
Console.WriteLine ("Cálculo completo!");

// um método que adiciona dois números de forma assíncrona
ASYNC TASHADDASYNC ESTÁTICA (INT A, INT B)

aguarde tarefa.Atraso (1000); // simular algum atraso
retornar a + b;

// um método que subtraia dois números de forma assíncrona
ASYNC TASKSUTASSYNC estático (int a, int b)

aguarde tarefa.Atraso (1000); // simular algum atraso
retornar a - b;

No código, os métodos Addasync e SubractAsync usam a palavra -chave Aguardar para indicar que estão realizando uma operação assíncrona, que neste caso é um atraso simulado usando esta função de atraso (). Isso permite que os métodos retornem imediatamente sem bloquear o tópico principal.

No método principal, os métodos Addasync e SubractAsync são chamados usando a palavra -chave Aguarda para aguardar assíncronos pelos resultados das operações. Isso permite que o programa continue executando e execute outras tarefas enquanto aguarda as operações assíncronas concluírem.

Depois que as tarefas estão concluídas, a propriedade de resultado é usada para recuperar o resultado de cada tarefa e imprimir no console. Aqui está a saída do código que discutimos anteriormente que realiza adição e subtração usando async e aguardam:

Conclusão

A programação assíncrona pode fornecer vários benefícios para o seu aplicativo, incluindo desempenho aprimorado, maior capacidade de resposta e código simplificado. Ao usar técnicas de programação assíncrona, você pode criar aplicativos mais eficientes e responsivos em C#. A palavra -chave assíncrona é usada com o nome da função para fazê -la funcionar de forma assíncrona enquanto aguarda suspender a operação até que o método assíncrono termine de execução e imprime o resultado.