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

返回

ValueTask

一个表示异步释放操作的任务。

注解

使用此方法可以异步关闭或释放非托管资源,例如文件、流和句柄,由实现此接口的类实例保留。 使用此方法, IDisposable.Dispose 无需长时间阻止 GUI 应用程序的主线程即可执行资源密集型释放操作。

警告

如果使用实现接口的 IAsyncDisposable 类,则应在使用类完成时调用其 DisposeAsync 实现。 有关详细信息,请参阅本主题中的 IAsyncDisposable “使用实现 IAsyncDisposable 的对象”部分。

实现此方法时,请确保通过包含层次结构传播调用释放所有保留的资源。 例如,如果对象 A 分配对象 B,而对象 B 分配对象 C,则 A 的DisposeAsync实现必须调用 DisposeAsync B,后者必须启用对 C 的调用DisposeAsync。如果基类实现IAsyncDisposableDisposeAsync则对象还必须调用其基类的方法。

如果多次调用对象的 DisposeAsync 方法,该对象必须在第一次调用后忽略所有调用,并同步返回成功完成 ValueTask。 如果多次调用该 DisposeAsync 对象的方法,该对象不得引发异常。 除了 DisposeAsync 可以引发 ObjectDisposedException 资源已释放以外的实例方法。

适用于