DbConnection.CloseAsync Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fecha de maneira assíncrona a conexão com o banco de dados.
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
Retornos
Um Task representando a operação assíncrona.
Comentários
A implementação padrão desse método assíncrono delega ao seu equivalente síncrono e retorna um concluído Task
, potencialmente bloqueando o thread de chamada.
Os provedores de dados que dão suporte à programação assíncrona devem substituir a implementação padrão usando operações de E/S assíncronas.
Os Close métodos e CloseAsync revertem todas as transações pendentes. Em seguida, eles liberam a conexão com o pool de conexões ou fecham a conexão se o pool de conexões estiver desabilitado.
Um aplicativo pode chamar Close ou CloseAsync mais de uma vez. Nenhuma exceção é gerada.
Se o DbConnection sair do escopo, ele não será fechado. Portanto, você deve fechar explicitamente a conexão chamando Close
ou Dispose
, que são funcionalmente equivalentes. Se o valor Pooling
do pool de conexões estiver definido como true
ou yes
, isso também liberará a conexão física.
Cuidado
Não feche nem descarte um DbConnection
, um DbDataReader
ou qualquer outro objeto gerenciado no Finalize
método de sua classe. Em um finalizador, você só deve liberar recursos não gerenciados que sua classe possui diretamente. Se a classe não tiver nenhum recurso não gerenciado, não inclua um método Finalize
em sua definição de classe. Para obter mais informações, confira Coleta de lixo.
Esse método armazena na tarefa que retorna todas as exceções de não uso que o equivalente síncrono do método pode gerar. Se uma exceção for armazenada na tarefa retornada, essa exceção será gerada quando a tarefa for aguardada. Exceções de uso, como ArgumentException, ainda são geradas de forma síncrona. Para as exceções armazenadas, consulte as exceções geradas por Close().