DbConnection.CloseAsync Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Asynchronně ukončí připojení k databázi.
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
Návraty
A Task představující asynchronní operaci.
Poznámky
Výchozí implementace této asynchronní metody deleguje na svůj synchronní protějšek a vrátí dokončený Task
, potenciálně blokuje volající vlákno.
Zprostředkovatelé dat, kteří podporují asynchronní programování , by měli přepsat výchozí implementaci pomocí asynchronních vstupně-výstupních operací.
Metody Close a CloseAsync vrátí zpět všechny čekající transakce. Pak uvolní připojení k fondu připojení nebo ukončí připojení, pokud je sdružování připojení zakázané.
Aplikace může volat Close nebo CloseAsync vícekrát. Negeneruje se žádná výjimka.
Pokud dojde k DbConnection výpadku rozsahu, nezavře se. Proto musíte připojení explicitně zavřít voláním Close
nebo Dispose
, které jsou funkčně ekvivalentní. Pokud je hodnota Pooling
sdružování připojení nastavená na true
nebo yes
, uvolní se také fyzické připojení.
Upozornění
Neuzavírejte ani nelikvidujte DbConnection
objekt , DbDataReader
a ani žádný jiný spravovaný objekt v Finalize
metodě vaší třídy. V finalizátoru byste měli uvolnit pouze nespravované prostředky, které vaše třída vlastní přímo. Pokud vaše třída nevlastní žádné nespravované prostředky, nezahrnujte do definice třídy metodu Finalize
. Další informace najdete v tématu Uvolňování paměti.
Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Close().