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 应用程序的主线程即可执行资源密集型释放操作。
Warning
如果使用实现接口的 IAsyncDisposable 类,则应在使用类完成时调用其 DisposeAsync 实现。 有关详细信息,请参阅本主题中的 IAsyncDisposable “使用实现 IAsyncDisposable 的对象”部分。
实现此方法时,请确保通过包含层次结构传播调用来释放所有保留的资源。 例如,如果对象 A 分配对象 B,而对象 B 分配对象 C,则 A 的DisposeAsync实现必须调用 DisposeAsync B,后者必须反过来调用 DisposeAsync C。如果基类实现DisposeAsync,IAsyncDisposable对象还必须调用其基类的方法。
如果多次调用对象的 DisposeAsync 方法,该对象必须在第一个调用后忽略所有调用,并同步返回成功完成 ValueTask。 如果多次调用对象的 DisposeAsync 方法,则对象不得导致异常。 除了 DisposeAsync 可以引发 ObjectDisposedException 资源已释放以外的实例方法。