DbConnection.CloseAsync Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Ferme de manière asynchrone la connexion à la base de données.
public:
virtual System::Threading::Tasks::Task ^ CloseAsync();
public virtual System.Threading.Tasks.Task CloseAsync ();
abstract member CloseAsync : unit -> System.Threading.Tasks.Task
override this.CloseAsync : unit -> System.Threading.Tasks.Task
Public Overridable Function CloseAsync () As Task
Retours
Task représentant l’opération asynchrone.
Remarques
L’implémentation par défaut de cette méthode asynchrone délègue à son équivalent synchrone et retourne un , Task
ce qui bloque potentiellement le thread appelant.
Les fournisseurs de données qui prennent en charge la programmation asynchrone doivent remplacer l’implémentation par défaut à l’aide d’opérations d’E/S asynchrones.
Les Close méthodes et CloseAsync restaurent toutes les transactions en attente. Ils libèrent ensuite la connexion au pool de connexions ou ferment la connexion si le regroupement de connexions est désactivé.
Une application peut appeler Close ou CloseAsync plusieurs fois. Aucune exception n’est générée.
Si le DbConnection sort de l’étendue, il n’est pas fermé. Par conséquent, vous devez fermer explicitement la connexion en appelant Close
ou Dispose
, qui sont fonctionnellement équivalents. Si la valeur Pooling
de regroupement de connexions est définie sur true
ou yes
, la connexion physique est également libéré.
Attention
Ne fermez pas ou ne disposez pas d’un DbConnection
, d’un DbDataReader
ou d’un autre objet managé dans la Finalize
méthode de votre classe. Dans un finaliseur, vous devez libérer uniquement les ressources non managées que votre classe possède directement. Si votre classe ne possède pas de ressource non managée, n'incluez pas une méthode Finalize
dans la définition de classe. Pour plus d’informations, consultez Nettoyage de la mémoire.
Cette méthode stocke dans la tâche toutes les exceptions de non-utilisation que le équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception est levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour les exceptions stockées, consultez les exceptions levées par Close().