IAsyncDisposable.DisposeAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
以异步方式执行与释放或重置非托管资源相关的应用程序定义的任务。
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 应用程序的主线程即可执行资源密集型释放操作。
警告
如果使用实现接口的 IAsyncDisposable 类,则应在使用类完成时调用其 DisposeAsync
实现。 有关详细信息,请参阅本主题中的 IAsyncDisposable “使用实现 IAsyncDisposable 的对象”部分。
实现此方法时,请确保通过包含层次结构传播调用释放所有保留的资源。 例如,如果对象 A 分配对象 B,而对象 B 分配对象 C,则 A 的DisposeAsync
实现必须调用 DisposeAsync
B,后者必须启用对 C 的调用DisposeAsync
。如果基类实现IAsyncDisposable,DisposeAsync
则对象还必须调用其基类的方法。
如果多次调用对象的 DisposeAsync
方法,该对象必须在第一次调用后忽略所有调用,并同步返回成功完成 ValueTask。 如果多次调用该 DisposeAsync
对象的方法,该对象不得引发异常。 除了 DisposeAsync
可以引发 ObjectDisposedException 资源已释放以外的实例方法。