AsyncLazy<T>.DisposeValueAsync 方法

定义

释放延迟初始化的值(如果可释放),并导致所有后续尝试获取该值失败。

public System.Threading.Tasks.Task DisposeValueAsync ();
member this.DisposeValueAsync : unit -> System.Threading.Tasks.Task
Public Function DisposeValueAsync () As Task

返回

一个任务,在已释放值时完成;如果值已被释放或已计划由先前调用处置,则立即完成任务。

注解

调用此方法会将此对象置于释放状态,其中,将来调用获取值将引发 ObjectDisposedException

如果值已生成并实现 IDisposableIAsyncDisposableIAsyncDisposable ,则将被释放。 如果值工厂已启动但尚未完成,则在值工厂完成时将释放其值。

如果在调用此方法时,之前对获取值的调用处于未完成状态,则这些调用 可能会 完成,并且其调用方可能会获取该值,尽管 Dispose() 可能已或即将对值调用,导致这些用户体验 ObjectDisposedException

请注意所有基于值实现 IDisposableIAsyncDisposable 基于实际值(而不是 T 类型参数)的条件。 这意味着,尽管 T 可能 IFoo (不实现 IDisposable) ,但实现 IFoo 的具体类型可能会实现 IDisposable ,从而被视为如上所述的可释放对象。

适用于