ChangeMonitor.NotifyOnChanged(OnChangedCallback) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Lo llaman los implementadores de memoria caché para registrar una devolución de llamada y notificar a una instancia de ObjectCache a través del delegado OnChangedCallback cuando una dependencia ha cambiado.
public:
void NotifyOnChanged(System::Runtime::Caching::OnChangedCallback ^ onChangedCallback);
public void NotifyOnChanged (System.Runtime.Caching.OnChangedCallback onChangedCallback);
member this.NotifyOnChanged : System.Runtime.Caching.OnChangedCallback -> unit
Public Sub NotifyOnChanged (onChangedCallback As OnChangedCallback)
Parámetros
- onChangedCallback
- OnChangedCallback
Referencia a un método que se invoca cuando ha cambiado una dependencia.
Excepciones
El método de devolución de llamada ya se ha invocado.
onChangedCallback
es null
.
Comentarios
Los implementadores de caché usan este método para conectarse a sí mismos a un monitor de cambios. Si asocia uno o varios monitores de cambio con el elemento de caché, se pasa una instancia con una CacheItemPolicy propiedad de monitores de cambios rellenada al elemento de caché. Un implementador de caché que admite monitores de cambios es responsable de recorrer en iteración la ChangeMonitors propiedad y registrar los OnChangedCallback delegados con cada monitor de cambios que encuentre.
Dado que el OnChangedCallback delegado incluye un parámetro de estado opcional, una implementación concreta del monitor de cambios puede pasar información de estado opcional. El implementador de caché determina si se puede tomar una dependencia explícita del tipo de estado que pasa un monitor de cambios personalizado como parte de la devolución de llamada.
Nota
La API de extensibilidad de caché base no tiene ningún requisito para la dependencia explícita del tipo de estado.
La implementación del NotifyOnChanged método determina automáticamente si el estado del monitor ya ha cambiado en el momento NotifyOnChanged en que se llama al método . Si la HasChanged propiedad es true
, el método llama automáticamente al OnChangedCallback controlador de eventos, que se registró, a través del OnChanged método . Esto ocurre porque es posible que, desde el momento en que una implementación de caché cree un monitor de cambios, hasta el momento en que una implementación de caché obtiene el monitor y se conectan a él, el estado supervisado subyacente ha cambiado. Si el estado ya ha cambiado, el objeto que se pasa al OnChanged método es null
.
El NotifyOnChanged método solo se puede invocar una vez y producirá una excepción en las llamadas posteriores.
Notas a los desarrolladores de herederos
Debe llamar al NotifyOnChanged(OnChangedCallback) método para recibir notificaciones de los cambios de dependencia. Si ya se ha producido un cambio de dependencia, se llamará a la OnChangedCallback instancia cuando NotifyOnChanged(OnChangedCallback) se llame a . De lo contrario, se llamará a la OnChangedCallback instancia una vez, ya sea cuando se llame al OnChanged(Object) método o cuando se llame al Dispose() método , lo que ocurra primero. La OnChangedCallback instancia proporcionada por la implementación de caché debe quitar la entrada de caché y, si la solicita el autor de la llamada de caché, vuelva a generar el cambio o actualizar el evento necesario al autor de la llamada de caché original.
La implementación de la caché de objetos debe quitar la entrada de caché asociada a un cambio de dependencia.