IAsyncDisposable IAsyncDisposable IAsyncDisposable IAsyncDisposable Interface

Определение

Предоставляет механизм для асинхронного освобождения неуправляемых ресурсов.Provides a mechanism for releasing unmanaged resources asynchronously.

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

Комментарии

В .NET классы, владеющие неуправляемыми ресурсами, обычно реализуют IDisposable интерфейс для предоставления механизма для синхронного освобождения неуправляемых ресурсов.In .NET, classes that own unmanaged resources usually implement the IDisposable interface to provide a mechanism for releasing unmanaged resources synchronously. Однако в некоторых случаях необходимо предоставить асинхронный механизм для освобождения неуправляемых ресурсов в дополнение к синхронному (или наоборот).However, in some cases they need to provide an asynchronous mechanism for releasing unmanaged resources in addition to (or instead of) the synchronous one. Предоставление такого механизма позволяет потребителю выполнять ресурсоемкие операции удаления, не блокируя основной поток приложения с графическим пользовательским интерфейсом в течение длительного времени.Providing such a mechanism enables the consumer to perform resource-intensive dispose operations without blocking the main thread of a GUI application for a long time.

Метод этого интерфейса возвращает объект ValueTask , представляющий асинхронную операцию удаления. IAsyncDisposable.DisposeAsyncThe IAsyncDisposable.DisposeAsync method of this interface returns a ValueTask that represents the asynchronous dispose operation. Классы, владеющие неуправляемыми ресурсами, реализуют этот метод, и потребитель этих классов вызывает этот метод для объекта, если он больше не нужен.Classes that own unmanaged resources implement this method, and the consumer of these classes calls this method on an object when it is no longer needed.

Асинхронные методы используются в сочетании с async ключевыми словами и await в C# Visual Basic.The async methods are used in conjunction with the async and await keywords in C# and Visual Basic. Дополнительные инсформатион см. в статье асинхронная модель программирования задач C# в или Асинхронное программирование с использованием Async и await (Visual Basic).For more insformation, see The Task asynchronous programming model in C# or Asynchronous Programming with Async and Await (Visual Basic).

Использование объекта, реализующего ИасинкдиспосаблеUsing an object that implements IAsyncDisposable

Если приложение использует объект, реализующий IAsyncDisposable, следует вызвать DisposeAsync реализацию объекта, когда вы завершите его использование.If your application uses an object that implements IAsyncDisposable, you should call the object's DisposeAsync implementation when you are finished using it. Чтобы обеспечить освобождение ресурсов даже в случае исключения, вызовите DisposeAsync метод finally внутри предложения try / finally инструкции.To make sure resources are released even in case of an exception, call the DisposeAsync method inside a finally clause of the try/finally statement. Дополнительные сведения о шаблоне try см / . finally в разделе try-finally (C#) или try... Перехватить... Оператор finally (Visual Basic).For more information about the try/finally pattern, see try-finally (C#) or Try...Catch...Finally Statement (Visual Basic).

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

Вы можете реализовать IAsyncDisposable в следующих ситуациях:You might implement IAsyncDisposable in the following situations:

  • При разработке асинхронного перечислителя, который владеет неуправляемыми ресурсами.When developing an asynchronous enumerator that owns unmanaged resources. Асинхронные перечислители используются с C# функцией асинхронных потоков 8,0.Asynchronous enumerators are used with the C# 8.0 async streams feature. Дополнительные сведения о асинхронных потоках см . в разделе Учебник. Создание и использование асинхронных потоков C# с использованием 8,0 и .netCore 3,0.For more information about async streams, see Tutorial: Generate and consume async streams using C# 8.0 and .NET Core 3.0.

  • Если класс владеет неуправляемыми ресурсами и для их освобождения требуется операция ввода-вывода с интенсивным использованием ресурсов, например сброс содержимого промежуточного буфера в файл или отправка пакета по сети для закрытия соединения.When your class owns unmanaged resources and releasing them requires a resource-intensive I/O operation, such as flushing the contents of an intermediate buffer into a file or sending a packet over a network to close a connection.

DisposeAsync Используйте метод для выполнения любой очистки, необходимой после использования неуправляемых ресурсов, таких как освобождение, освобождение или сброс неуправляемых ресурсов.Use the DisposeAsync method to perform whatever cleanup is necessary after using the unmanaged resources, such as freeing, releasing, or resetting the unmanaged resources. Дополнительные сведения о неуправляемых ресурсах в .NET см. в разделе Очистка неуправляемых ресурсов.For more information about unmanaged resources in .NET, see Cleaning Up Unmanaged Resources.

Методы

DisposeAsync() DisposeAsync() DisposeAsync() DisposeAsync()

Выполняет определяемые приложением задачи, связанные с высвобождением или сбросом неуправляемых ресурсов асинхронно.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.

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

ConfigureAwait(IAsyncDisposable, Boolean) ConfigureAwait(IAsyncDisposable, Boolean) ConfigureAwait(IAsyncDisposable, Boolean) ConfigureAwait(IAsyncDisposable, Boolean)

Настраивает способ выполнения ожиданий для задач, возвращаемых из асинхронного высвобождаемого объекта.Configures how awaits on the tasks returned from an async disposable are performed.

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