Comment utiliser l'async et attendre en C #

Comment utiliser l'async et attendre en C #
L'async et l'attente sont des méthodes puissantes en C # qui vous permettent d'effectuer des opérations longues sans bloquer le fil principal. L'une des fonctions clés de C # qui prend en charge la programmation asynchrone est l'Async () et Await (). Cet article expliquera ce que sont asynchrones et attend, et comment ils sont utilisés dans la programmation C #.

Qu'est-ce que l'async dans C #

La méthode async () fonctionne de manière synchrone jusqu'à ce qu'elle atteigne sa première expression d'attente. L'async () est utilisé avant le type de retour de la méthode, et la signature de la méthode doit renvoyer un objet de tâche ou de tâche, où t est le type de valeur que la méthode renvoie.

asynchrone ()

// attendez de manière asynchrone qu'une opération termine
// Renvoie un objet de tâche ou de tâche

Voici les modifications dans la syntaxe:

  • : Le type de retour de la méthode, il peut s'agir de n'importe quel type de données C # valide.
  • : Le nom de la méthode.
  • : Les paramètres de la méthode. Celles-ci peuvent être des types de données C # valides.

Qu'est-ce que l'attente en C #

L'Await () est utilisé pour suspendre l'exécution de la méthode jusqu'à ce que l'opération asynchrone se termine, voici la syntaxe de cette fonction:

attendre

Voici les modifications dans la syntaxe:

  • : Le type du résultat que l'opération asynchrone renvoie.
  • : La variable qui stocke le résultat de l'opération asynchrone.
  • : L'appel de méthode qui effectue l'opération asynchrone.

Comment utiliser l'async et attendre en C #

En utilisant l'async et attendre, vous pouvez créer du code plus réactif et efficace, car il libère le fil principal pour gérer d'autres opérations tandis que les opérations asynchrones fonctionnent en arrière-plan. Vous trouverez ci-dessous l'exemple de code qui utilise à la fois l'async et attend et montre comment utiliser l'async et attendre pour effectuer des opérations non bloquantes et asynchrones en C #.

Utilisation du système;
Utilisation du système.Filetage.Tâches;
programme de classe

statique void main (String [] args)

Console.WriteLine ("commencer à calculer");
// démarrer une tâche pour ajouter 2 et 3 de manière asynchrone
Tâche tâche1 = addasync (2, 3);
Console.WriteLine ("Adding…");
// démarrer une tâche pour soustraire 5 de 10 asynchrone
Tâche tâche2 = soustraire (10, 5);
Console.WriteLine ("Soustraire…");
// attendez que la première tâche se termine et obtient le résultat
INT Result1 = Task1.Résultat;
Console.WriteLine ($ "2 + 3 = result1");
// attendez que la deuxième tâche se termine et obtient le résultat
int résultat2 = tâche2.Résultat;
Console.WriteLine ($ "10 - 5 = result2");
Console.WriteLine ("Calcul complet!");

// une méthode qui ajoute deux nombres de manière asynchrone
Async TaskAddasync statique (int a, int b)

attendre la tâche.Retard (1000); // simulez un délai
retourner a + b;

// une méthode qui soustrait deux nombres de manière asynchrone
tasksubstractasync asynchrone statique (int a, int b)

attendre la tâche.Retard (1000); // simulez un délai
retourner a - b;

Dans le code, les méthodes addasync et soustracasync utilisent le mot clé Await pour indiquer qu'ils effectuent une opération asynchrone, qui dans ce cas est un retard simulé en utilisant cette fonction de tâche (). Cela permet aux méthodes de revenir immédiatement sans bloquer le fil principal.

Dans la méthode principale, les méthodes addasync et soustracasync sont appelées le mot-clé Await pour attendre de manière asynchrone les résultats des opérations. Cela permet au programme de continuer à fonctionner et à effectuer d'autres tâches en attendant que les opérations asynchrones se terminent.

Une fois les tâches terminées, la propriété du résultat est utilisée pour récupérer le résultat de chaque tâche et imprimer à la console. Voici la sortie du code dont nous avons discuté précédemment qui effectue l'addition et la soustraction en utilisant l'async et l'attente:

Conclusion

La programmation asynchrone peut fournir plusieurs avantages à votre application, y compris des performances améliorées, une réactivité accrue et un code simplifié. En utilisant des techniques de programmation asynchrones, vous pouvez créer des applications plus efficaces et réactives en C #. Le mot-clé async est utilisé avec le nom de la fonction pour le faire fonctionner de manière asynchrone en attendant suspendre l'opération jusqu'à ce que la méthode asynchrone termine l'exécution et imprime le résultat.