IAsyncDisposable Интерфейс

Определение

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

public interface class IAsyncDisposable
public interface IAsyncDisposable
type IAsyncDisposable = interface
Public Interface IAsyncDisposable
Производный

Комментарии

В .NET классы, владеющие неуправляемыми ресурсами, обычно реализуют IDisposable интерфейс для предоставления механизма для синхронного освобождения неуправляемых ресурсов. Однако в некоторых случаях необходимо предоставить асинхронный механизм для освобождения неуправляемых ресурсов в дополнение к синхронному (или наоборот). Предоставление такого механизма позволяет потребителю выполнять ресурсоемкие операции удаления, не блокируя основной поток приложения с графическим пользовательским интерфейсом в течение длительного времени.

IAsyncDisposable.DisposeAsyncМетод этого интерфейса возвращает объект ValueTask , представляющий асинхронную операцию удаления. Классы, владеющие неуправляемыми ресурсами, реализуют этот метод, и потребитель этих классов вызывает этот метод для объекта, если он больше не нужен.

Асинхронные методы используются в сочетании с async await ключевыми словами и в C# и Visual Basic. Дополнительные сведения см. в разделе модель асинхронного программирования задач в C# или Асинхронное программирование с использованием Async и await (Visual Basic).

Использование объекта, реализующего Иасинкдиспосабле

Если приложение использует объект, реализующий IAsyncDisposable , следует вызвать реализацию объекта, DisposeAsync когда вы завершите его использование. Чтобы обеспечить освобождение ресурсов даже в случае исключения, поставьте код, использующий IAsyncDisposable объект, в оператор using (в C# начиная с версии 8,0) или вызовите DisposeAsync метод внутри finally предложения try / finally инструкции. Дополнительные сведения о try / finally шаблоне см. в разделе try-finally (C#) или try... Перехватить... Оператор finally (Visual Basic).

Реализация Иасинкдиспосабле

Вы можете реализовать IAsyncDisposable в следующих ситуациях:

  • При разработке асинхронного перечислителя, который владеет неуправляемыми ресурсами. Асинхронные перечислители используются с функцией асинхронных потоков C# 8,0. Дополнительные сведения о асинхронных потоках см. в разделе учебник. Создание и использование асинхронных потоков с помощью C# 8,0 и .NET Core 3,0.

  • Если класс владеет неуправляемыми ресурсами и для их освобождения требуется операция ввода-вывода с интенсивным использованием ресурсов, например сброс содержимого промежуточного буфера в файл или отправка пакета по сети для закрытия соединения.

Используйте DisposeAsync метод для выполнения любой очистки, необходимой после использования неуправляемых ресурсов, таких как освобождение, освобождение или сброс неуправляемых ресурсов. Дополнительные сведения см. в разделе Реализация метода диспосеасинк.

Методы

DisposeAsync()

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

Методы расширения

ConfigureAwait(IAsyncDisposable, Boolean)

Настраивает способ выполнения ожиданий для задач, возвращаемых из асинхронного высвобождаемого объекта.

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