Partage via


DbConnection.CloseAsync Méthode

Définition

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 , Taskce 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 DbDataReaderou 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().

S’applique à