WeakEventManager Klasse

Definition

Stellt eine Basisklasse für den Ereignis-Manager bereit, der im Muster für schwache Ereignisse verwendet wird. Der Manager fügt Listener hinzu oder entfernt diese für Ereignisse (oder Rückrufe), die ebenfalls dieses Muster verwenden.

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

Sie verwenden in der Regel das schwache Ereignismuster, wenn die Ereignisquelle über eine Objektlebensdauer verfügt, die von den Ereignislistenern unabhängig ist. Die Verwendung der zentralen Ereignisverteilungsfunktion eines WeakEventManager ermöglicht die Garbage Collection der Handler des Listeners, auch wenn das Quellobjekt beibehalten wird. Im Gegensatz dazu bewirkt ein regulärer Ereignis-Hookup mit dem += Operator, dass die potenziell getrennte Quelle einen Verweis auf die Listener enthält. Dadurch wird verhindert, dass der Empfänger rechtzeitig müllt wird.

Eine häufige Situation, in der die Lebensdauerbeziehungen zwischen Quellen und Listenern das schwache Ereignismuster verwenden sollten, ist die Behandlung von Updateereignissen, die von Datenbindungen stammen.

Das schwache Ereignismuster kann auch für Rückrufe und reguläre Ereignisse verwendet werden.

Hinweise für Ausführende

Ein Beispiel für ein benutzerdefiniertes WeakEventManagerfinden Sie unter Schwache Ereignismuster.

Konstruktoren

WeakEventManager()

Initialisiert als Initialisierer innerhalb des Konstruktors einer abgeleiteten Klasse die Basisklassenwerte.

Eigenschaften

Dispatcher

Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist.

(Geerbt von DispatcherObject)
Item[Object]

Ruft die Daten ab, die für die angegebene Quelle gespeichert werden, oder legt diese fest.

ReadLock

Richtet auf der zugrunde liegenden Datentabelle eine Lesesperre ein und gibt ein IDisposable zurück.

WriteLock

Richtet auf der zugrunde liegenden Datentabelle eine Schreibsperre ein und gibt ein IDisposable zurück.

Methoden

CheckAccess()

Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann.

(Geerbt von DispatcherObject)
DeliverEvent(Object, EventArgs)

Übermittelt das verwaltete Ereignis an alle Listener.

DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList)

Übermittelt das verwaltete Ereignis an jeden Listener in der bereitgestellten Liste.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetCurrentManager(Type)

Gibt die WeakEventManager-Implementierung zurück, die für den bereitgestellten Typ verwendet wird.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
NewListenerList()

Gibt ein neues Objekt zurück, mit dem Listener zu einem Ereignis hinzugefügt werden.

ProtectedAddHandler(Object, Delegate)

Fügt den angegebenen Delegaten als Ereignishandler der angegebenen Quelle hinzu.

ProtectedAddListener(Object, IWeakEventListener)

Fügt den bereitgestellten Listener der bereitgestellten Quelle für das verwaltete Ereignis hinzu.

ProtectedRemoveHandler(Object, Delegate)

Entfernt den zuvor hinzugefügten Handler aus der angegebenen Quelle.

ProtectedRemoveListener(Object, IWeakEventListener)

Entfernt einen zuvor hinzugefügten Listener aus der bereitgestellten Quelle.

Purge(Object, Object, Boolean)

Entfernt inaktive Listenereinträge aus der Datenliste für die bereitgestellte Quelle. Gibt true zurück, wenn tatsächlich Einträge aus der Liste entfernt wurden.

Remove(Object)

Entfernt alle Listener für die angegebene Quelle.

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.

SetCurrentManager(Type, WeakEventManager)

Legt den aktuellen Manager für den angegebenen Managertyp fest.

StartListening(Object)

Startet beim Überschreiben in einer abgeleiteten Klasse die Überwachung des verwalteten Ereignisses. 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.

StopListening(Object)

Stoppt beim Überschreiben in einer abgeleiteten Klasse die Überwachung der bereitgestellten Quelle für das verwaltete Ereignis.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
VerifyAccess()

Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann.

(Geerbt von DispatcherObject)

Gilt für:

Weitere Informationen