Compartir a través de


ChangeMonitor.Dispose Método

Definición

Libera todos los recursos usados por la instancia actual de la clase ChangeMonitor.

Sobrecargas

Dispose()

Libera todos los recursos utilizados por la instancia actual de la clase ChangeMonitor.

Dispose(Boolean)

Libera todos los recursos administrados y no administrados así como todas las referencias a la instancia de ChangeMonitor. Esta sobrecarga la deben implementar las clases de supervisión de cambios derivadas.

Comentarios

El Dispose método se usa para liberar la ChangeMonitor instancia y los recursos relacionados. El método público Dispose se invoca para coordinar el proceso de eliminación con eventos de ciclo de vida clave de clases derivadas de monitor de cambios (por ejemplo, la inicialización) y liberar la ChangeMonitor instancia para que la instancia se pueda recopilar como elemento no utilizado. El Dispose método se implementa mediante clases derivadas de supervisión de cambios para eliminar sus recursos administrados y no administrados.

Dispose()

Source:
ChangeMonitor.cs
Source:
ChangeMonitor.cs
Source:
ChangeMonitor.cs

Libera todos los recursos utilizados por la instancia actual de la clase ChangeMonitor.

public:
 virtual void Dispose();
public void Dispose ();
abstract member Dispose : unit -> unit
override this.Dispose : unit -> unit
Public Sub Dispose ()

Implementaciones

Excepciones

La inicialización no se ha completado en la clase de supervisión de cambios que llamó al método base Dispose().

Comentarios

El Dispose método invoca el Dispose método de las clases derivadas solo una vez, la primera vez que se llama. Las llamadas posteriores al Dispose método no tienen ningún efecto. Después de llamar al método , la IsDisposed propiedad se establece trueen .

Se debe llamar a la Dispose sobrecarga para eliminar una ChangeMonitor instancia. A continuación se muestran las reglas para llamar al método dispose:

  • Antes de insertar un elemento en la memoria caché, es responsabilidad del autor de la llamada eliminar una ChangeMonitor instancia.

  • Una vez que el elemento de caché y las ChangeMonitor instancias asociadas a ella se pasan a una memoria caché, el implementador de caché que debe asegurarse de que Dispose se llama a , incluso si se produce un error en la inserción.

  • Después de pasar un elemento y sus instancias asociadas ChangeMonitor a una memoria caché, el autor de la llamada no debe eliminar la dependencia porque cuando se llama al Dispose método , la llamada se trata como si la dependencia hubiera cambiado. Como resultado, el OnChanged método se invoca automáticamente.

  • Teniendo en cuenta estas reglas, se debe llamar al Dispose método de una de las siguientes maneras:

    • Los usuarios deben llamar a la sobrecarga del Dispose método si deciden no insertar la instancia derivada del monitor de cambios en una memoria caché.

    • La implementación de caché es responsable de llamar a la Dispose sobrecarga si la implementación intenta insertar la instancia de change-monitor en una caché de objetos, pero se produce un error en la inserción. Cuando el intento de inserción produce una excepción, la implementación de caché debe eliminar las dependencias asociadas.

    • Si se quita la entrada de caché, la implementación de la memoria caché también debe eliminar la dependencia.

La implementación interna del OnChanged método llama automáticamente al Dispose método después de llamar a una devolución de llamada registrada a través del NotifyOnChanged método .

Nota

Esta eliminación automática durante la activación del evento solo se produce si la inicialización de la ChangeMonitor instancia se completó anteriormente.

Cuando el constructor de un monitor de cambios derivado llama al InitializationComplete método , si el estado del monitor de cambios ya ha cambiado (es decir, el estado que se supervisa ya ha cambiado cuando el constructor todavía estaba activo), el InitializationComplete método eliminará automáticamente el monitor de cambios.

Nota

Los usuarios no deben llamar al Dispose método . Sin embargo, no se puede impedir que los usuarios llamen al método . Por lo tanto, si lo hacen, se invoca el OnChanged método . En ese caso, se notifica la entrada de caché como si la dependencia hubiera cambiado.

Para evitar que las clases derivadas invalide el Dispose método , el método no es una implementación de interfaz explícita.

Consulte también

Se aplica a

Dispose(Boolean)

Source:
ChangeMonitor.cs
Source:
ChangeMonitor.cs
Source:
ChangeMonitor.cs

Libera todos los recursos administrados y no administrados así como todas las referencias a la instancia de ChangeMonitor. Esta sobrecarga la deben implementar las clases de supervisión de cambios derivadas.

protected:
 abstract void Dispose(bool disposing);
protected abstract void Dispose (bool disposing);
abstract member Dispose : bool -> unit
Protected MustOverride Sub Dispose (disposing As Boolean)

Parámetros

disposing
Boolean

Es true para liberar los recursos administrados y no administrados, así como todas las referencias a una instancia de ChangeMonitor; es false para liberar únicamente los recursos no administrados. Cuando se pasa false, un subproceso finalizer llama al método Dispose(Boolean) y es probable que las referencias administradas externas ya no sean válidas porque ya se han recopilado los elementos no utilizados.

Comentarios

Cuando el valor de disposing value es true, se eliminan todos los recursos administrados y no administrados y se liberan todas las referencias a este objeto para que se pueda recopilar la instancia derivada del monitor de cambios. Se garantiza que el método base Dispose invocará el método implementado Dispose solo una vez.

Notas a los implementadores

Un monitor de cambios debe implementar la Dispose(Boolean) sobrecarga para liberar todos los recursos administrados y no administrados cuando el valor de disposing es true. La Dispose(Boolean) sobrecarga del método que tiene un disposing valor de true se llama solo una vez, es decir, cuando la instancia se elimina por primera vez. Un monitor de cambios no debe llamar directamente a la Dispose(Boolean) sobrecarga. Un monitor de cambios derivado puede llamar al método público sin Dispose() parámetros en la clase base ChangeMonitor .

Como alternativa, un monitor de cambios puede implementar un método de finalizador. En ese caso, el finalizador puede invocar el Dispose(Boolean) método y pasarlo un disposing valor de false. Sin embargo, esto suele ser innecesario. Normalmente, un servicio realiza la supervisión de los cambios de dependencia que mantiene una referencia a la instancia de change-monitor. La referencia impide que la instancia se recolecte de elementos no utilizados y, por tanto, hace que un método finalizador no sea necesario. Para evitar pérdidas de memoria, cuando cambia una dependencia, el OnChanged(Object) método elimina la instancia del monitor de cambios (a menos que no haya finalizado la inicialización).

Se aplica a