Appel de méthode asynchrone

Auteur: Lewis Jackson
Date De Création: 8 Peut 2021
Date De Mise À Jour: 25 Juin 2024
Anonim
Appel de méthode asynchrone - La Technologie
Appel de méthode asynchrone - La Technologie

Contenu

Définition - Que signifie méthode asynchrone?

Un appel de méthode asynchrone est une méthode utilisée dans la programmation .NET qui retourne à l'appelant immédiatement avant la fin de son traitement et sans bloquer le thread appelant.

Lorsqu'une application appelle une méthode asynchrone, elle peut être exécutée simultanément avec l'exécution de la méthode asynchrone qui effectue sa tâche. Une méthode asynchrone s'exécute dans un thread distinct du thread d'application principal. Les résultats du traitement sont récupérés via un autre appel sur un autre thread.

Les méthodes asynchrones aident à optimiser l'exécution des ressources, ce qui permet d'obtenir une application évolutive. Ils sont utilisés pour exécuter des tâches fastidieuses telles que l'ouverture de gros fichiers, la connexion à des ordinateurs distants, l'interrogation d'une base de données, l'appel de services Web et de formulaires Web ASP.NET.

L'appel de méthode asynchrone peut également être appelé invocation de méthode asynchrone (AMI).


Introduction à Microsoft Azure et au nuage Microsoft | Tout au long de ce guide, vous apprendrez ce qu'est le cloud computing et comment Microsoft Azure peut vous aider à migrer et à exploiter votre entreprise à partir du cloud.

Techopedia explique l'appel de méthode asynchrone

La méthode asynchrone diffère de la méthode synchrone par la manière dont elle retourne de l'appel. Pendant qu'un appel de méthode asynchrone revient immédiatement, permettant au programme appelant d'effectuer d'autres opérations, les appels de méthode synchrones attendent que la méthode soit terminée avant de poursuivre le déroulement du programme.

Le framework .NET a une infrastructure asynchrone intégrée permettant à toute méthode d'être appelée de manière asynchrone sans modifier son code.

.NET Framework fournit deux modèles de conception pour implémenter la méthode asynchrone, ceux qui utilisent des délégués asynchrones (objets IASyncResult) et des événements. Le modèle de délégués asynchrones est plus complexe et offre une flexibilité qui le rend bien adapté à divers modèles de programmation complexes. Le modèle basé sur les événements est simple et devrait être utilisé dans la plupart des cas.

Dans le modèle de délégués asynchrones, un objet délégué utilise deux méthodes: BeginInvoke et EndInvoke. BeginInvoke a une liste de paramètres, similaires à sa fonction encapsulée, ainsi que deux paramètres facultatifs supplémentaires; il retourne l'objet IAsyncResult. EndInvoke renvoie deux paramètres (type out et ref) avec l'objet IAsyncResult. BeginInvoke est utilisé pour lancer l'appel asynchrone, alors que EndInvoke est utilisé pour récupérer les résultats de l'appel asynchrone.

Les modèles asynchrones basés sur des événements utilisent une classe qui possède une ou plusieurs méthodes, nommées MethodNameAsync, qui ont des versions synchrones correspondantes qui s'exécutent sur le thread actuel. Les modèles basés sur des événements peuvent également avoir un événement MethodNameCompleted et une méthode MethodNameAsyncCancel. Ce modèle permet à la classe de communiquer avec des opérations asynchrones en attente à l'aide du modèle d'événement délégué.

Voici quelques conseils relatifs aux méthodes asynchrones:


  • Pour les accès simultanés élevés, les méthodes asynchrones doivent être évitées
  • Il faut faire attention en passant des références d'objet partagé
  • EndXXX (appelé à la fin d'une opération asynchrone) doit être appelé pour renvoyer les exceptions et éviter les échecs.
  • En interceptant et en enregistrant tous les objets d’exception dans une méthode asynchrone, il est possible de le rétablir lors de l’appel EndXXX.
  • Les contrôles de l'interface utilisateur qui lancent des opérations asynchrones de longue durée doivent être désactivés s'ils ne sont nécessaires qu'à cette fin.
  • Les méthodes asynchrones doivent être implémentées avec une compréhension du multithreading et là où elles s'avèrent plus efficaces que l'utilisation de méthodes synchrones.