IAsyncDisposable.DisposeAsync Метод

Определение

Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или асинхронным сбросом неуправляемых ресурсов.

public:
 System::Threading::Tasks::ValueTask DisposeAsync();
public System.Threading.Tasks.ValueTask DisposeAsync();
abstract member DisposeAsync : unit -> System.Threading.Tasks.ValueTask
Public Function DisposeAsync () As ValueTask

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

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

Комментарии

Используйте этот метод для асинхронного закрытия или выпуска неуправляемых ресурсов, таких как файлы, потоки и дескриптор, удерживаемые экземпляром класса, реализующего этот интерфейс. Использование этого метода вместо IDisposable.Dispose того, чтобы выполнять ресурсоемкую операцию удаления без блокировки основного потока приложения ГРАФИЧЕСКОго интерфейса в течение длительного времени.

Предупреждение

Если вы используете класс, реализующий IAsyncDisposable интерфейс, следует вызвать его DisposeAsync реализацию после завершения работы с классом. Дополнительные сведения см. в разделе "Использование объекта, реализующего IAsyncDisposable" раздела IAsyncDisposable .

При реализации этого метода убедитесь, что все удерживаемые ресурсы освобождаются путем распространения вызова через иерархию хранения. Например, если объект A выделяет объект B, а объект B выделяет объект C, реализация A DisposeAsync должна вызвать DisposeAsync B, который должен включить вызов DisposeAsync C. Объект также должен вызвать DisposeAsync метод своего базового класса, если базовый класс реализует IAsyncDisposable.

Если метод объекта DisposeAsync вызывается несколько раз, объект должен игнорировать все вызовы после первого и синхронно возвращать успешно завершенное ValueTask. Объект не должен вызывать исключение, если его метод DisposeAsync вызывается несколько раз. Методы экземпляров, отличные от DisposeAsync методов, которые могут вызывать ObjectDisposedException , когда ресурсы уже удалены.

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