Partager via


Opérations asynchrones

Télécharger ADO.NET

Certaines opérations de base de données, telles que les exécutions de commandes, peuvent prendre beaucoup de temps. Dans ce cas, les applications à thread unique doivent bloquer d'autres opérations et attendre que la commande soit terminée avant de poursuivre leurs propres opérations. En revanche, pouvoir affecter une opération longue à un thread d’arrière-plan permet au thread de premier plan de rester actif pendant l’opération. Dans une application Windows, par exemple, la délégation de l’opération de longue durée à un thread d’arrière-plan permet au thread d’interface utilisateur de rester réactif pendant l’exécution de l’opération.

.NET fournit plusieurs modèles de design asynchrone standard que les développeurs peuvent utiliser pour tirer parti des threads d’arrière-plan et libérer l’interface utilisateur ou des threads de haute priorité pour effectuer d’autres opérations dans sa classe SqlCommand. Plus précisément, les méthodes BeginExecuteNonQuery, BeginExecuteReaderet BeginExecuteXmlReader, associées aux méthodes EndExecuteNonQuery, EndExecuteReader et EndExecuteXmlReader, fournissent le support asynchrone.

Notes

La programmation asynchrone est une fonctionnalité principale de .NET. Pour plus d'informations sur les différentes techniques asynchrones disponibles pour les développeurs, consultez Appel de méthodes synchrones de façon asynchrone.

Bien que l’utilisation de techniques asynchrones avec des fonctionnalités ADO.NET n’ajoute pas de considérations spéciales, il est important d’être conscient des avantages et des pièges liés à la création d’applications multithread. Les exemples qui suivent dans cette section signalent plusieurs problèmes importants que les développeurs doivent prendre en compte lors de la création d’applications qui incorporent des fonctionnalités multithread.

Contenu de cette section

Applications Windows utilisant des rappels
Fournit un exemple montrant comment exécuter une commande asynchrone en toute sécurité, en gérant correctement l’interaction avec un formulaire et son contenu à partir d’un thread distinct.

Applications ASP.NET utilisant les handles d’attente
Fournit un exemple montrant comment exécuter plusieurs commandes simultanées à partir d’une page ASP.NET, à l’aide de descripteurs d’attente pour gérer l’opération à l’achèvement de toutes les commandes.

Interrogation dans les applications console
Fournit un exemple illustrant l’utilisation de l’interrogation pour attendre la fin de l’exécution d’une commande asynchrone à partir d’une application console. Cette technique est également valide dans une bibliothèque de classes ou une autre application sans interface utilisateur.

Étapes suivantes