ChangeMonitor.Dispose 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
释放 ChangeMonitor 类的当前实例所使用的所有资源。
重载
Dispose() |
释放由 ChangeMonitor 类的当前实例占用的所有资源。 |
Dispose(Boolean) |
释放所有托管资源和非托管资源,以及对 ChangeMonitor 实例的任何引用。 此重载必须由派生的更改监视器类实现。 |
注解
方法 Dispose 用于释放 ChangeMonitor 实例和相关资源。 调用公共 Dispose 方法以将处置过程与派生的变更监视类 (的关键生命周期事件(例如初始化) )协调,并释放 ChangeMonitor 实例以便可以进行垃圾回收。 方法 Dispose 由派生的变更监视器类实现,以释放其托管和非托管资源。
Dispose()
- Source:
- ChangeMonitor.cs
- Source:
- ChangeMonitor.cs
- Source:
- ChangeMonitor.cs
释放由 ChangeMonitor 类的当前实例占用的所有资源。
public:
virtual void Dispose();
public void Dispose ();
abstract member Dispose : unit -> unit
override this.Dispose : unit -> unit
Public Sub Dispose ()
实现
例外
在调用 Dispose() 基方法的派生更改监视器类中,初始化未完成。
注解
方法 Dispose 在首次调用派生类时只调用 Dispose 一次方法。 对 方法的 Dispose 后续调用不起作用。 调用 方法后,属性 IsDisposed 设置为 true
。
Dispose必须调用重载才能释放ChangeMonitor实例。 下面是用于调用 dispose 方法的规则:
在将项插入缓存之前,调用方负责处置 ChangeMonitor 实例。
缓存项及其 ChangeMonitor 关联的实例传递到缓存后,即使插入失败,也必须确保 Dispose 调用的缓存实现程序。
将项及其关联的 ChangeMonitor 实例传递到缓存后,调用方不得释放依赖项,因为调用 方法时 Dispose ,调用被视为依赖项已更改。 因此, OnChanged 会自动调用 方法。
考虑到这些规则, Dispose 必须通过以下方式之一调用 方法:
方法的内部实现 OnChanged 在调用 Dispose 通过 NotifyOnChanged 方法注册的回调后自动调用 方法。
注意
仅当实例的初始化之前完成时, ChangeMonitor 才会在事件触发期间自动释放。
当派生的更改监视器的构造函数调用 InitializationComplete 方法时,如果更改监视器的状态已更改 (即,当构造函数仍然处于活动状态时,受监视的状态已更改) 则 InitializationComplete 方法将自动释放更改监视器。
为了防止派生类重写 Dispose 方法,方法不是显式接口实现。
另请参阅
适用于
Dispose(Boolean)
- Source:
- ChangeMonitor.cs
- Source:
- ChangeMonitor.cs
- Source:
- ChangeMonitor.cs
释放所有托管资源和非托管资源,以及对 ChangeMonitor 实例的任何引用。 此重载必须由派生的更改监视器类实现。
protected:
abstract void Dispose(bool disposing);
protected abstract void Dispose (bool disposing);
abstract member Dispose : bool -> unit
Protected MustOverride Sub Dispose (disposing As Boolean)
参数
- disposing
- Boolean
若要释放托管资源和非托管资源,以及对 ChangeMonitor 实例的任何引用,则为 true
;若要仅释放非托管资源,则为 false
。 传递 false
时,Dispose(Boolean) 方法由 finalizer
线程调用,所有外部托管引用由于已经作为垃圾回收,因此可能不再有效。
注解
当 value true
的disposing
值为 时,将释放所有托管和非托管资源,并释放对此对象的任何引用,以便可以垃圾回收派生的更改监视器实例。 可以保证基 Dispose 方法将只调用一次实现 Dispose 的方法。
实施者说明
当 的值为 disposing
true
时,Dispose(Boolean)更改监视器必须实现重载以释放所有托管和非托管资源。 Dispose(Boolean)值为 true
的方法重载disposing
仅调用一次,即首次释放实例时。 更改监视器不得直接调用 Dispose(Boolean) 重载。 派生的更改监视器可以调用基ChangeMonitor类上的无Dispose()参数公共方法。
或者,更改监视器可以实现终结器方法。 在这种情况下,终结器可以调用 方法, Dispose(Boolean) 并向其 disposing
传递值 false
。 但是,这通常是不必要的。 依赖项更改的监视通常由维护对更改监视器实例的引用的服务执行。 引用可防止对实例进行垃圾回收,因此不需要终结器方法。 为了避免内存泄漏,当依赖项发生更改时,除非初始化尚未完成) , OnChanged(Object) 否则 方法会释放更改监视器实例 (。