Opérations asynchrones

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 Framework comprend 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 hautement prioritaires pour l’accomplissement d’autres opérations. ADO.NET prend en charge ces mêmes modèles de design 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 fonction clé de .NET Framework et ADO.NET exploite pleinement les modèles de design standard. 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 les fonctions d'ADO.NET ne nécessite pas de commentaires particuliers, il est probable que les développeurs utiliseront les fonctions asynchrones davantage dans ADO.NET que dans d'autres domaines de .NET Framework. Il est important d'être conscient des avantages et des pièges liés à la création d'application 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.

Dans 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.

Voir aussi