Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les opérations de base de données peuvent prendre beaucoup de temps. Pour maintenir une interface utilisateur réactive ou éviter de bloquer un thread de requête, utilisez des méthodes de base de données asynchrones au lieu d’attendre de façon synchrone qu’une commande se termine.
Installez le package NuGet Microsoft.Data.SqlClient pour le code client SQL. Pour les nouvelles applications, utilisez OpenAsync et les méthodes ExecuteNonQueryAsync, await et ExecuteXmlReaderAsync avec ExecuteReaderAsync. Ces méthodes effectuent des entrées/sorties asynchrones (E/S) sans avoir à créer un thread d’arrière-plan.
Microsoft.Data.SqlClient prend également en charge les modèles de rappel, de handle d’attente et d’interrogation décrits dans cette section. Les méthodes BeginExecuteNonQuery, BeginExecuteReader et BeginExecuteXmlReader s’associent à EndExecuteNonQuery, EndExecuteReader et EndExecuteXmlReader. N'ajoutez pas Asynchronous Processing=true à la chaîne de connexion ; Microsoft.Data.SqlClient ne prend pas en charge ce mot-clé.
Remarque
Pour le nouveau code, utilisez le modèle asynchrone basé sur les tâches. Les exemples de cette section montrent le modèle pris en charge Begin/End pour les applications qui ont besoin de rappels, de wait handles ou de scrutation.
Conservez chaque connexion et commande active jusqu’à ce que son opération se termine. Observez les exceptions lorsque vous appelez la méthode correspondante End ou attendez la tâche. Dans une application de bureau, mettez à jour les contrôles uniquement à partir du thread d’interface utilisateur.
Dans cette section
Applications Windows utilisant des rappels Fournit un exemple illustrant comment exécuter une commande asynchrone en toute sécurité, gérer correctement l’interaction avec un formulaire et son contenu à partir d’un thread distinct.
Applications ASP.NET utilisant des signaux d’attente Ceci fournit un exemple montrant comment exécuter plusieurs commandes simultanément depuis une page ASP.NET, en utilisant des signaux d'attente pour gérer l'opération à la fin de toutes les commandes.
Interrogation dans les applications console Fournit un exemple illustrant l’utilisation de l’interrogation pour attendre la fin d’une exécution de 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.