WeakEventManager Klasse

Definition

Stellt eine Basisklasse für den Ereignis-Manager bereit, der im Muster für schwache Ereignisse verwendet wird.Provides a base class for the event manager that is used in the weak event pattern. Der Manager fügt Listener hinzu oder entfernt diese für Ereignisse (oder Rückrufe), die ebenfalls dieses Muster verwenden.The manager adds and removes listeners for events (or callbacks) that also use the pattern.

public ref class WeakEventManager abstract : System::Windows::Threading::DispatcherObject
public abstract class WeakEventManager : System.Windows.Threading.DispatcherObject
type WeakEventManager = class
    inherit DispatcherObject
Public MustInherit Class WeakEventManager
Inherits DispatcherObject
Vererbung
WeakEventManager
Abgeleitet

Hinweise

Normalerweise verwenden Sie das schwache Ereignis Muster, wenn die Ereignis Quelle eine Objekt Lebensdauer hat, die unabhängig von den Ereignislistenern ist.You typically use the weak event pattern when the event source has an object lifetime that is independent of the event listeners. Durch die Verwendung der Funktion für die zentrale Ereignis WeakEventManager Verteilung eines können die Handler des Listener auch dann in die Garbage Collection aufgenommen werden, wenn das Quell Objekt weiterhin besteht.Using the central event dispatching capability of a WeakEventManager allows the listener's handlers to be garbage collected even if the source object persists. Im Gegensatz dazu bewirkt ein reguläres Ereignis mit dem += -Operator, dass die möglicherweise getrennte Quelle einen Verweis auf die Listener enthält.By contrast, a regular event hookup using the += operator causes the potentially disconnected source to hold a reference to the listeners. Dadurch wird verhindert, dass der Empfänger rechtzeitig eine Garbage Collection durchgeführt wird.This prevents the receiver from being garbage collected in a timely fashion.

Eine häufige Situation, in der die Lebensdauer Beziehungen zwischen Quellen und Listenern das schwache Ereignis Muster verwenden sollten, ist die Behandlung von Update Ereignissen aus Daten Bindungen.One common situation where the lifetime relationships between sources and listeners should use of the weak event pattern is the handling of update events coming from data bindings.

Das schwache Ereignis Muster kann auch für Rückrufe und reguläre Ereignisse verwendet werden.The weak event pattern can also be used for callbacks and regular events.

Hinweise für Vererber

Ein Beispiel für eine benutzerdefinierte WeakEventManagerfinden Sie unter schwache Ereignis Muster.For an example of a custom WeakEventManager, see Weak Event Patterns.

Konstruktoren

WeakEventManager()

Initialisiert als Initialisierer innerhalb des Konstruktors einer abgeleiteten Klasse die Basisklassenwerte.Initializes base class values when it is used as the initializer by the constructor of a derived class.

Eigenschaften

Dispatcher

Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist.Gets the Dispatcher this DispatcherObject is associated with.

(Geerbt von DispatcherObject)
Item[Object]

Ruft die Daten ab, die für die angegebene Quelle gespeichert werden, oder legt diese fest.Gets or sets the data being stored for the specified source.

ReadLock

Richtet auf der zugrunde liegenden Datentabelle eine Lesesperre ein und gibt ein IDisposable zurück.Establishes a read-lock on the underlying data table, and returns an IDisposable.

WriteLock

Richtet auf der zugrunde liegenden Datentabelle eine Schreibsperre ein und gibt ein IDisposable zurück.Establishes a write-lock on the underlying data table, and returns an IDisposable.

Methoden

CheckAccess()

Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann.Determines whether the calling thread has access to this DispatcherObject.

(Geerbt von DispatcherObject)
DeliverEvent(Object, EventArgs)

Übermittelt das verwaltete Ereignis an alle Listener.Delivers the event being managed to each listener.

DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList)

Übermittelt das verwaltete Ereignis an jeden Listener in der bereitgestellten Liste.Delivers the event being managed to each listener in the provided list.

Equals(Object)

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

(Geerbt von Object)
GetCurrentManager(Type)

Gibt die WeakEventManager-Implementierung zurück, die für den bereitgestellten Typ verwendet wird.Returns the WeakEventManager implementation that is used for the provided type.

GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetType()

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

(Geerbt von Object)
MemberwiseClone()

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

(Geerbt von Object)
NewListenerList()

Gibt ein neues Objekt zurück, mit dem Listener zu einem Ereignis hinzugefügt werden.Returns a new object to contain listeners to an event.

ProtectedAddHandler(Object, Delegate)

Fügt den angegebenen Delegaten als Ereignishandler der angegebenen Quelle hinzu.Adds the specified delegate as an event handler of the specified source.

ProtectedAddListener(Object, IWeakEventListener)

Fügt den bereitgestellten Listener der bereitgestellten Quelle für das verwaltete Ereignis hinzu.Adds the provided listener to the provided source for the event being managed.

ProtectedRemoveHandler(Object, Delegate)

Entfernt den zuvor hinzugefügten Handler aus der angegebenen Quelle.Removes the previously added handler from the specified source.

ProtectedRemoveListener(Object, IWeakEventListener)

Entfernt einen zuvor hinzugefügten Listener aus der bereitgestellten Quelle.Removes a previously added listener from the provided source.

Purge(Object, Object, Boolean)

Entfernt inaktive Listenereinträge aus der Datenliste für die bereitgestellte Quelle.Removes inactive listener entries from the data list for the provided source. Gibt true zurück, wenn tatsächlich Einträge aus der Liste entfernt wurden.Returns true if some entries were actually removed from the list.

Remove(Object)

Entfernt alle Listener für die angegebene Quelle.Removes all listeners for the specified source.

ScheduleCleanup()

Fordert an, dass das Löschen nicht verwendeter Einträge aus der zugrunde liegenden Liste der Listener in einem Thread mit niedrigerer Priorität ausgeführt wird.Requests that a purge of unused entries in the underlying listener list be performed on a lower priority thread.

SetCurrentManager(Type, WeakEventManager)

Legt den aktuellen Manager für den angegebenen Managertyp fest.Sets the current manager for the specified manager type.

StartListening(Object)

Startet beim Überschreiben in einer abgeleiteten Klasse die Überwachung des verwalteten Ereignisses.When overridden in a derived class, starts listening for the event being managed. Nach dem ersten Aufruf der StartListening(Object)-Methode muss der Manager bereit sein für einen Aufruf von DeliverEvent(Object, EventArgs) oder DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList), sobald das relevante Ereignis aus der bereitgestellten Quelle behandelt werden muss.After the StartListening(Object) method is first called, the manager should be in the state of calling DeliverEvent(Object, EventArgs) or DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList) whenever the relevant event from the provided source is handled.

StopListening(Object)

Stoppt beim Überschreiben in einer abgeleiteten Klasse die Überwachung der bereitgestellten Quelle für das verwaltete Ereignis.When overridden in a derived class, stops listening on the provided source for the event being managed.

ToString()

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

(Geerbt von Object)
VerifyAccess()

Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann.Enforces that the calling thread has access to this DispatcherObject.

(Geerbt von DispatcherObject)

Gilt für:

Siehe auch