ChangeMonitor ChangeMonitor ChangeMonitor ChangeMonitor Class

Definition

Stellt eine Basisklasse für einen abgeleiteten benutzerdefinierten Typ bereit, der Wechsel in den Zustand der Daten überwacht, auf den ein Cacheelement angewiesen ist.Provides a base class for a derived custom type that monitors changes in the state of the data which a cache item depends on.

public ref class ChangeMonitor abstract : IDisposable
public abstract class ChangeMonitor : IDisposable
type ChangeMonitor = class
    interface IDisposable
Public MustInherit Class ChangeMonitor
Implements IDisposable
Vererbung
ChangeMonitorChangeMonitorChangeMonitorChangeMonitor
Abgeleitet
Implementiert

Hinweise

Die ChangeMonitor Klasse dient als Basisklasse für abgeleitete Monitor-Klassen, die für bestimmte Cache-Implementierungen spezialisiert werden.The ChangeMonitor class is used as the base class for derived monitor classes that are specialized for particular cache implementations. Ein ChangeMonitor Instanz überwacht Änderungen in den Zustand der Daten, die ein Element im Cache abhängig.A ChangeMonitor instance monitors changes in the state of data which a cache item depends on. Beispielsweise kann für das Element eine Datei oder der Entität sein, deren Inhalt zwischengespeichert werden.For example, the item can be a file or data entity whose contents are cached. Wenn die Datei oder eine Entität aktualisiert wird, muss auch der zugeordnete Cacheeintrag geändert werden.If the file or data entity is updated, the associated cache entry must be changed also. Allgemeine Elemente, die überwacht werden können, enthalten Datenentitäten (z. B. Datenbankfelder, Werte, Zeilen oder Tabellen), ein anderer Cacheeintrag, und Dateien und Attribute der Datei.Common items that can be monitored include data entities (such as database fields, values, rows, or tables), another cache entry, and files and file attributes.

Eine Änderung der Abhängigkeit ist eine Änderung in den Zustand einer Abhängigkeit.A dependency change is a change in the state of a dependency. In einer typischen Cacheimplementierung nachdem eine ChangeMonitor Instanz benachrichtigt den Cache, der eine Abhängigkeit geändert hat, die vom Cache durchgeführt, der die erforderlichen Aktion, z. B. den eingefügten Cacheeintrag für ungültig zu erklären.In a typical cache implementation, after a ChangeMonitor instance notifies the cache that a dependency has changed, the cache performs the required action, such as invalidating the inserted cache entry.

Abgeleitete ChangeMonitor Klassen können zum Überwachen von Änderungen an der Abhängigkeit für spezifische andere Datenspeicher angepasst werden.Derived ChangeMonitor classes can be customized to monitor dependency changes for specific different data stores. Es gibt z. B. cacheimplementierungen für ein Dateisystem, physischen Speicher oder einer Datenbank.For example, there are cache implementations for a file system, physical memory, or a database. Die ChangeMonitor Klasse überprüft die Änderungen, die außerhalb des Caches auf, und klicken Sie dann gewarnt, Cache, der Änderungen vorgenommen wurden.The ChangeMonitor class examines changes that occur outside the cache, and then alerts the cache that changes have occurred.

Die .NET Framework.NET Framework beinhaltet die folgenden Klassen, die von abgeleitet ChangeMonitor Klasse:The .NET Framework.NET Framework includes the following classes that derive from ChangeMonitor class:

Jede dieser Klassen funktioniert mit verschiedenen Typen von Abhängigkeiten.Each of these classes works with different types of dependencies. Z. B. die abgeleiteten FileChangeMonitor Klasse überwacht die Änderungen an einen Cache für die Dateisystemdaten (Dateien und Ordner), von denen das Element im Cache abhängig.For example, the derived FileChangeMonitor class monitors changes to a cache for file system data (files and folders) that the cache item depends on.

Hinweise für Vererber

Bei der Erstellung einer benutzerdefiniertes Cacheimplementierung oder abgeleiteten Typs überwachen Änderung müssen Sie bestimmte Richtlinien beachtet.If you create a custom cache implementation or a derived change monitor type, you must follow certain guidelines. Die folgende Liste enthält die folgenden Richtlinien.The following list summarizes these guidelines. Weitere Informationen finden Sie in der Dokumentation für die einzelnen Methoden oder Eigenschaften.For more information, see the documentation for individual methods or properties.

– Der Konstruktor einer abgeleiteten Klasse muss festgelegt die UniqueId -Eigenschaft, mit der Überwachung beginnen, und rufen InitializationComplete() -Methode auf, bevor die Methode zurückgibt.- The constructor of a derived class must set the UniqueId property, begin monitoring, and call InitializationComplete() method before the method returns. Wenn ein Konstruktor ein Fehler, während der Konstruktionen auftritt und aufweisen muss, um Ressourcen zu entfernen, wird der Konstruktor kann nur Aufrufen der Dispose überladen werden, nachdem die InitializationComplete() Methode wird aufgerufen, da die Dispose Überladung löst eine InvalidOperationException Ausnahme, wenn die Initialisierung nicht abgeschlossen ist.If a constructor encounters an error during constructions and must have to dispose of resources, the constructor can only call the Dispose overload after the InitializationComplete() method is called because the Dispose overload will throw an InvalidOperationException exception if initialization is not completed.

– Wenn es sich bei Auftreten von Änderungen in die Daten, die überwacht werden, bevor die Initialisierung abgeschlossen, muss beim Aufruf des Konstruktors der OnChanged(Object) Methode vor dem Aufruf der InitializationComplete() Methode.- If changes occur in the data that is being monitored before initialization is complete, the constructor must call the OnChanged(Object) method before calling the InitializationComplete() method.

– Hinter einem abgeleiteten ChangeMonitor Typ instanziiert wird, müssen Sie den Monitor einfügen, in ein benutzerdefiniertes ObjectCache Implementierung.- After a derived ChangeMonitor type is instantiated, you must insert the monitor into a custom ObjectCache implementation. Oder wenn Sie mit dem Monitor für die Änderung abgeschlossen haben, rufen Sie die Dispose Methode.Or if you are finished using the change monitor, call the Dispose method.

– Nach dem ein ChangeMonitor Instanz eingelegt ist eine ObjectCache -Implementierung der ObjectCache Instanz erforderlich, dass die änderungsüberwachung freigegeben wird.- After a ChangeMonitor instance is inserted into a ObjectCache implementation, the ObjectCache instance require that the change monitor is disposed. Auch wenn die Einfügemarke ungültig ist und bewirkt, dass eine Ausnahme aus, die ObjectCache Implementierung aufrufen, muss die Dispose überladen.Even if the insertion is invalid and causes an exception, the ObjectCache implementation must call the Dispose overload.

: Nachdem Sie eine abgeleitete änderungsüberwachung in einem Cache eingefügt wird die ObjectCache Implementierung aufrufen muss NotifyOnChanged(OnChangedCallback), durch Übergeben einer OnChangedCallback Objekt.- After a derived change monitor is inserted into a cache, the ObjectCache implementation must call NotifyOnChanged(OnChangedCallback), by passing a OnChangedCallback object. Die NotifyOnChanged(OnChangedCallback) Methode kann nur einmal aufgerufen werden.The NotifyOnChanged(OnChangedCallback) method can be called only one time. Wenn eine Änderung der Abhängigkeit bereits aufgetreten ist, die OnChangedCallback Instanz wird sofort aufgerufen, wenn NotifyOnChanged(OnChangedCallback) aufgerufen wird.If a dependency change has already occurred, the OnChangedCallback instance will be called immediately when NotifyOnChanged(OnChangedCallback) is called. Andernfalls die OnChangedCallback Instanz wird nur einmal aufgerufen werden.Otherwise, the OnChangedCallback instance will be called only one time. Diesmal ein Aufruf wird entweder bei der OnChanged(Object) Methode wird aufgerufen, da die ChangeMonitor eine Änderung erkannt oder wenn die Dispose() Methode wird aufgerufen, auf die ChangeMonitor, welches Ereignis zuerst eintritt.This one time call occurs either when the OnChanged(Object) method is called because the ChangeMonitor instance detected a change, or when the Dispose() method is called on the ChangeMonitor, whichever occurs first.

– Die OnChangedCallback -Instanz, die vom bereitgestellten ein ObjectCache Implementierung sollten entfernen Sie den zugehörigen Cache-Eintrag, und geben Sie einen Grund, indem die DependencyChanged Enumeration.- The OnChangedCallback instance that is provided by an ObjectCache implementation should remove the associated cache entry and specify a reason by using the DependencyChanged enumeration.

-Ein ChangeMonitor Instanz Aufrufen der OnChanged(Object) Methode entweder bevor eine Cacheimplementierung aufgerufen hat NotifyOnChanged(OnChangedCallback) Methode oder nach.- A ChangeMonitor instance can call the OnChanged(Object) method either before a cache implementation has called NotifyOnChanged(OnChangedCallback) method or after. Wenn die OnChanged(Object) Methode wird aufgerufen, bevor NotifyOnChanged(OnChangedCallback) aufgerufen wird, wird die Basis ChangeMonitor Implementierung benachrichtigt den Cache, der dieses Problem aufgetreten ist, und löst den Rückruf übergeben werden soll NotifyOnChanged(OnChangedCallback) direkt beim NotifyOnChanged(OnChangedCallback) aufgerufen wird.If the OnChanged(Object) method is called before NotifyOnChanged(OnChangedCallback) is called, the base ChangeMonitor implementation will notify the cache that this has occurred and will trigger the callback to be passed to NotifyOnChanged(OnChangedCallback) immediately when NotifyOnChanged(OnChangedCallback) is invoked. Zustandsdaten, die an die OnChanged(Object) Methode durch die änderungsüberwachung gespeichert und später übergeben die NotifyOnChanged(OnChangedCallback) Methode bei der NotifyOnChanged(OnChangedCallback) -Methode wird aufgerufen.Any state data that is passed to the OnChanged(Object) method is saved by the change monitor and subsequently passed to the NotifyOnChanged(OnChangedCallback) method when the NotifyOnChanged(OnChangedCallback) method is invoked.

-Eine änderungsüberwachung muss implementieren die Dispose(Boolean) Methode.- A change monitor must implement the Dispose(Boolean) method. Weitere Informationen finden Sie in der Dokumentation zur Dispose(Boolean)-Methode.For more information, see the Dispose(Boolean) method documentation.

– Die Dispose() Überladung aufgerufen werden, um das Löschen der ChangeMonitor Instanz.- The Dispose() method overload must be called to dispose of the ChangeMonitor instance. Die Regeln zum Aufrufen von Dispose sind wie folgt aus:The rules for calling Dispose are as follows: – Bevor Sie ein Element in den Cache eingefügt wird, ist es die Verantwortung des Aufrufers, Verwerfen einer ChangeMonitor Instanz.- Before an item is inserted into the cache, it is the responsibility of caller to dispose of a ChangeMonitor instance.

– Nachdem Element im Cache und die ChangeMonitor auf einen Cache-Instanzen, die ihm zugeordneten übergeben werden, die Cache-Implementierung muss sicherstellen, dass die Dispose -Methode aufgerufen wird, selbst wenn der Vorgang schlägt fehl.- Once cache item and the ChangeMonitor instances that are associated with it are passed to a cache, the cache implementer must make sure that the Dispose method is called, even if the insert fails.

– Nach einem Element und die zugehörigen ChangeMonitor Instanzen werden mit einem Cache übergeben, die der Aufrufer muss die Abhängigkeit nicht freigeben, da bei der Dispose -Methode aufgerufen wird, der Aufruf wird behandelt, als ob die Abhängigkeit geändert hat.- After an item and its associated ChangeMonitor instances are passed to a cache, the caller must not dispose the dependency because when the Dispose method is called, the call is treated as if the dependency has changed. Daher die OnChanged(Object) Methode wird automatisch aufgerufen.As a result, the OnChanged(Object) method is automatically invoked.

– Unter Berücksichtigung dieser Regeln, die Dispose muss in einem der folgenden Methoden aufgerufen werden:- Taking these rules into consideration, the Dispose method must be called in one of the following ways: – Benutzer müssen aufrufen, die Dispose() -methodenüberladung, wenn sie nicht der abgeleiteten Änderungsüberwachungsinstanz in einem Cache einfügen möchten.- Users must call the Dispose() method overload if they decide not to insert the derived change-monitor instance into a cache.

– Wenn versucht wird, dass die Implementierung der Änderungsüberwachungsinstanz in den Objektcache ein einzufügen, aber der einfügen ein Fehler auftritt, wird der Cache-Implementierung verantwortlich für das Aufrufen der Dispose() überladen.- If the implementation tries to insert the change-monitor instance into an object cache but the insertion fails, the cache implementation is responsible for calling the Dispose() overload. Wenn der Versuch der Einfügung eine Ausnahme verursacht hat, muss die Cacheimplementierung alle zugehörigen Abhängigkeiten freigeben.When the insertion attempt causes an exception, the cache implementation must dispose of any associated dependencies.

– Wenn der Cacheeintrag entfernt wird, muss die Cacheimplementierung die Abhängigkeit auch freigeben.- If the cache entry is removed, the cache implementation must also dispose of the dependency.

: Die interne Implementierung der der OnChanged(Object) Methodenaufrufe automatisch die Dispose -Methode auf, nachdem sie einen Rückruf aufruft, ist über registriert NotifyOnChanged(OnChangedCallback).- The internal implementation of the OnChanged(Object) method automatically calls the Dispose method after it calls a callback that is registered through NotifyOnChanged(OnChangedCallback).

Dieser automatischen Aufruf der Dispose-Methode, bei der das Auslösen von Ereignissen tritt nur auf, wenn die Initialisierung der ChangeMonitor Instanz wurde bereits abgeschlossen.This automatic call to the dispose method during the event firing only occurs if the initialization of the ChangeMonitor instance was previously completed.

Wenn eine abgeleitete änderungsüberwachung-Konstruktor aufruft der InitializationComplete() -Methode, wenn der Zustand des Monitors Änderung bereits geändert hat (d. h. der Zustand, der bereits Änderungen überwacht wird, wenn der Konstruktor noch aktiv ist) und dann die InitializationComplete() wird Löschen Sie automatisch die änderungsüberwachung.When a derived change monitor's constructor calls the InitializationComplete() method, if the state of the change monitor has already changed (that is, the state that is monitored already changed when the constructor was still active) then the InitializationComplete() method will automatically dispose of the change monitor.

– Die HasChanged -Eigenschaftensatz auf true nach der OnChanged(Object) Methode wird aufgerufen, durch die abgeleiteten Änderungsüberwachungsinstanz, unabhängig davon, ob eine OnChangedCallback Objekt festgelegt wurde durch einen Aufruf von der NotifyOnChanged(OnChangedCallback) Methode oder nicht.- The HasChanged property is set to true after the OnChanged(Object) method is called by the derived change-monitor instance, regardless of whether a OnChangedCallback object has been set by a call to the NotifyOnChanged(OnChangedCallback) method or not.

Konstruktoren

ChangeMonitor() ChangeMonitor() ChangeMonitor() ChangeMonitor()

Initialisiert eine neue Instanz der ChangeMonitor-Klasse.Initializes a new instance of the ChangeMonitor class. Dieser Konstruktor wird von Konstruktoren in abgeleiteten Klassen aufgerufen, um die Basisklasse zu initialisieren.This constructor is called from constructors in derived classes to initialize the base class.

Eigenschaften

HasChanged HasChanged HasChanged HasChanged

Ruft einen Wert ab, der angibt, dass der von der ChangeMonitor-Klasse überwachte Zustand geändert wurde.Gets a value that indicates that the state that is monitored by the ChangeMonitor class has changed.

IsDisposed IsDisposed IsDisposed IsDisposed

Ruft einen Wert ab, der angibt, dass die abgeleitete Instanz einer ChangeMonitor-Klasse freigegeben wird.Gets a value that indicates that the derived instance of a ChangeMonitor class is disposed.

UniqueId UniqueId UniqueId UniqueId

Ruft einen Wert ab, der die ChangeMonitor-Klasseninstanz darstellt.Gets a value that represents the ChangeMonitor class instance.

Methoden

Dispose() Dispose() Dispose() Dispose()

Gibt alle von der aktuellen Instanz der ChangeMonitor-Klasse verwendeten Ressourcen frei.Releases all resources that are used by the current instance of the ChangeMonitor class.

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Gibt alle verwalteten und nicht verwalteten Ressourcen und alle Verweise auf die ChangeMonitor-Instanz frei.Releases all managed and unmanaged resources and any references to the ChangeMonitor instance. Diese Überladung muss von abgeleiteten Änderungsüberwachungsklassen implementiert werden.This overload must be implemented by derived change-monitor classes.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
InitializationComplete() InitializationComplete() InitializationComplete() InitializationComplete()

Wird vom Konstruktor abgeleiteter Klassen aufgerufen, um anzugeben, dass die Initialisierung abgeschlossen ist.Called from the constructor of derived classes to indicate that initialization is finished.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
NotifyOnChanged(OnChangedCallback) NotifyOnChanged(OnChangedCallback) NotifyOnChanged(OnChangedCallback) NotifyOnChanged(OnChangedCallback)

Wird von Cacheimplementierungen aufgerufen, um einen Rückruf zu registrieren und über den ObjectCache-Delegaten eine OnChangedCallback-Instanz zu benachrichtigen, wenn sich eine Abhängigkeit geändert hat.Called by Cache implementers to register a callback and notify an ObjectCache instance through the OnChangedCallback delegate when a dependency has changed.

OnChanged(Object) OnChanged(Object) OnChanged(Object) OnChanged(Object)

Wird von abgeleiteten Klassen aufgerufen, um das Ereignis auszulösen, wenn sich eine Abhängigkeit ändert.Called by derived classes to raise the event when a dependency changes.

ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Gilt für:

Threadsicherheit

Dieser Typ ist threadsicher.This type is thread safe.

Siehe auch