Поделиться через


DbConnection.CloseAsync Метод

Определение

Асинхронно закрывает подключение к базе данных.

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

Возвращаемое значение

Task, представляющий асинхронную операцию.

Комментарии

Реализация этого асинхронного метода по умолчанию делегирует своему синхронному аналогу и возвращает завершенный Taskобъект , потенциально блокирующий вызывающий поток.

Поставщики данных, поддерживающие асинхронное программирование , должны переопределить реализацию по умолчанию с помощью асинхронных операций ввода-вывода.

Методы Close и CloseAsync откатывают все ожидающие транзакции. Затем они освобождают подключение к пулу подключений или закрывают его, если пул подключений отключен.

Приложение может вызывать Close или CloseAsync несколько раз. исключения при этом не возникают.

Если соединение DbConnection выходит из области видимости, то его закрытие не производится. Поэтому необходимо явно закрыть соединение путем вызова Close или Dispose, которые функционально эквивалентны. Если для пула подключений задано true значение Pooling или yes, это также освобождает физическое подключение.

Внимание!

Не закрывайте и не удаляйте DbConnectionобъект , или любой DbDataReaderдругой управляемый объект в методе Finalize класса . В средстве завершения следует освобождать только неуправляемые ресурсы, которыми ваш класс владеет напрямую. Если класс не владеет какими-либо неуправляемыми ресурсами, не включайте в его определение метод Finalize. Дополнительные сведения см. в статье Сборка мусора.

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые Close().

Применяется к