Condividi tramite


DbConnection.CloseAsync Metodo

Definizione

Chiude la connessione al database in modo asincrono.

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

Restituisce

Task che rappresenta l'operazione asincrona.

Commenti

L'implementazione predefinita di questo metodo asincrono delega alla controparte sincrona e restituisce un oggetto completato Task, potenzialmente bloccando il thread chiamante.

I provider di dati che supportano la programmazione asincrona devono eseguire l'override dell'implementazione predefinita usando operazioni di I/O asincrone.

I Close metodi e CloseAsync e eseguono il rollback di tutte le transazioni in sospeso. Rilasciano quindi la connessione al pool di connessioni o chiudono la connessione se il pool di connessioni è disabilitato.

Un'applicazione può chiamare Close o CloseAsync più volte. Non viene generata alcuna eccezione.

Se l'oggetto esce dall'ambito DbConnection , non viene chiuso. Pertanto, è necessario chiudere in modo esplicito la connessione chiamando Close o Dispose, che sono equivalenti a livello funzionale. Se il valore Pooling del pool di connessioni è impostato su true o yes, viene rilasciata anche la connessione fisica.

Attenzione

Non chiudere o eliminare un DbConnectionoggetto , o DbDataReaderqualsiasi altro oggetto gestito nel Finalize metodo della classe . In un finalizzatore è consigliabile rilasciare direttamente le risorse non gestite di proprietà della classe. Se nella classe non sono presenti risorse non gestite, non includere un metodo Finalize nella relativa definizione della classe. Per altre informazioni, vedere Garbage Collection.

Questo metodo archivia nell'attività restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da Close().

Si applica a