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 无需长时间阻止 GUI 应用程序的主线程即可执行资源密集型释放操作。

Warning

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

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

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

适用于