AsyncLazy<T>.DisposeValue 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
释放延迟初始化的值(如果可释放),并导致所有后续尝试获取该值失败。
public void DisposeValue ();
member this.DisposeValue : unit -> unit
Public Sub DisposeValue ()
注解
如果已启动但尚未完成,则此调用将阻止处理 (其中可能包含对值本身的构造) (如果它是释放值的第一次调用)。
调用此方法会将此对象置于释放状态,其中,将来调用获取值将引发 ObjectDisposedException。
如果值已生成并实现 IDisposable 或 IAsyncDisposable,则会将其释放。 如果值工厂已启动但尚未完成,则在值工厂完成时将释放其值。
如果在调用此方法时,之前对获取值的调用处于未完成状态,则这些调用 可能会 完成,并且其调用方可能会获取该值,尽管 Dispose() 可能已或即将对值调用,导致这些用户体验 ObjectDisposedException。
请注意所有基于值实现 IDisposable 或 IAsyncDisposable 基于实际值(而不是 T
类型参数)的条件。 这意味着,尽管 T
可能 IFoo
(不实现 IDisposable) ,但实现 IFoo
的具体类型可能会实现 IDisposable ,从而被视为如上所述的可释放对象。