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 instancia y los recursos ChangeMonitor relacionados. El método público se invoca para coordinar el proceso de eliminación con eventos clave del ciclo de vida de clases derivadas del monitor de cambios (como la inicialización) y para liberar la instancia para que la instancia se pueda recopilar como elemento no Dispose ChangeMonitor utilizado. Las clases derivadas del monitor de cambios implementan el método para Dispose eliminar sus recursos administrados y no administrados.

Dispose()

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 método invoca el método de clases derivadas solo una Dispose Dispose vez, la primera vez que se llama. Las llamadas posteriores al Dispose método no tienen ningún efecto. Una vez que se ha llamado al método , IsDisposed la propiedad se establece en true .

Se Dispose debe llamar a la sobrecarga para eliminar una instancia de ChangeMonitor . Estas son 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 instancias asociadas a él se pasan a una caché, el implementador de caché que debe asegurarse de que se llama a , incluso si se produce un error ChangeMonitor Dispose en la inserción.

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

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

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

    • La implementación de caché es responsable de llamar a la sobrecarga si la implementación intenta insertar la instancia del monitor de cambios en una caché de objetos, pero se produce un error Dispose 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 caché también debe eliminar la dependencia.

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

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 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 método desecha automáticamente el monitor de InitializationComplete InitializationComplete cambios.

Nota

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

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

Consulte también

Se aplica a

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.

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 value es , se desecharán todos los recursos administrados y no administrados y se liberarán las referencias a este objeto para que la instancia derivada del monitor de cambios se pueda recopilar como elementos no disposing true utilizados. Se garantiza que el método base Dispose invocará el método Dispose implementado solo una vez.

Notas a los implementadores

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

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 pasar un valor de disposing false . Sin embargo, esto suele ser innecesario. Normalmente, un servicio que mantiene una referencia a la instancia de change-monitor realiza la supervisión de los cambios de dependencia. La referencia impide que la instancia se recolecte como elemento no utilizado y, por tanto, hace que un método finalizador no sea necesario. Para evitar pérdidas de memoria, cuando cambia una dependencia, el método elimina la instancia de change-monitor (a menos que la OnChanged(Object) inicialización no haya finalizado).

Se aplica a