DbConnection.CloseAsync Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Asynchronicznie zamyka połączenie z bazą danych.
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
Zwraca
Reprezentująca Task operację asynchroniczną.
Uwagi
Domyślna implementacja tej metody asynchronicznej deleguje do synchronicznego odpowiednika i zwraca ukończony Task
element , co potencjalnie blokuje wątek wywołujący.
Dostawcy danych, którzy obsługują programowanie asynchroniczne , powinni zastąpić domyślną implementację przy użyciu asynchronicznych operacji we/wy.
Metody Close i CloseAsync wycofają wszystkie oczekujące transakcje. Następnie zwalniają połączenie z pulą połączeń lub zamykają połączenie, jeśli buforowanie połączeń jest wyłączone.
Aplikacja może wywołać Close lub CloseAsync więcej niż jeden raz. Nie jest generowany wyjątek.
Jeśli element DbConnection wykracza poza zakres, nie jest zamknięty. W związku z tym należy jawnie zamknąć połączenie przez wywołanie Close
metody lub Dispose
, które są funkcjonalnie równoważne. Jeśli wartość Pooling
buforowania połączeń jest ustawiona na true
lub yes
, spowoduje to również wydanie połączenia fizycznego.
Przestroga
Nie zamykaj ani nie usuwaj DbConnection
obiektu , ani DbDataReader
żadnego innego zarządzanego obiektu w Finalize
metodzie klasy . W finalizatorze należy zwolnić tylko niezarządzane zasoby, które należą do klasy bezpośrednio. Jeśli klasa nie jest właścicielem żadnych zasobów niezarządzanych, nie dołączaj Finalize
metody do definicji klasy. Aby uzyskać więcej informacji, zobacz Odzyskiwanie pamięci.
Ta metoda jest przechowywana w zadaniu, które zwraca wszystkie wyjątki nieużytowe, które może zgłosić synchroniczna odpowiednik metody. Jeśli wyjątek jest przechowywany w zwracanym zadaniu, ten wyjątek zostanie zgłoszony podczas oczekiwania zadania. Wyjątki użycia, takie jak ArgumentException, są nadal zgłaszane synchronicznie. W przypadku przechowywanych wyjątków zobacz wyjątki zgłoszone przez Close()usługę .