WeakEventManager Klasse

Definition

Stellt eine Basisklasse für den Ereignis-Manager bereit, der im schwachen Ereignismuster verwendet wird. Der Manager fügt Listener für Ereignisse (oder Rückrufe) hinzu und entfernt sie, die auch das 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

In der Regel verwenden Sie das schwache Ereignismuster, wenn die Ereignisquelle über eine Objektlebensdauer verfügt, die unabhängig von den Ereignislistenern ist. Die Verwendung der zentralen Ereignis-Dispatching-Funktion eines WeakEventManager Listeners ermöglicht die Garbage Collection, auch wenn das Quellobjekt beibehalten wird. Im Gegensatz dazu führt ein regulärer Ereignis-Hookup mit dem += Operator dazu, 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 aus Datenbindungen stammen.

Das schwache Ereignismuster kann auch für Rückrufe und normale Ereignisse verwendet werden.

Hinweise für Ausführende

Ein Beispiel für ein benutzerdefiniertes WeakEventManagerBeispiel finden Sie unter "Schwache Ereignismuster".

Konstruktoren

Name Beschreibung
WeakEventManager()

Initialisiert Basisklassenwerte, wenn sie vom Konstruktor einer abgeleiteten Klasse als Initialisierer verwendet wird.

Eigenschaften

Name Beschreibung
Dispatcher

Ruft dies Dispatcher ab, dem dies DispatcherObject zugeordnet ist.

(Geerbt von DispatcherObject)
Item[Object]

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

ReadLock

Richtet eine Lesesperre für die zugrunde liegende Datentabelle ein und gibt eine IDisposable.

WriteLock

Richtet eine Schreibsperre für die zugrunde liegende Datentabelle ein und gibt eine IDisposable.

Methoden

Name Beschreibung
CheckAccess()

Bestimmt, ob der aufrufende Thread Zugriff auf diesen DispatcherObjectThread hat.

(Geerbt von DispatcherObject)
DeliverEvent(Object, EventArgs)

Liefert das Ereignis, das für jeden Listener verwaltet wird.

DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList)

Liefert das Ereignis, das für jeden Listener in der bereitgestellten Liste verwaltet wird.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetCurrentManager(Type)

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

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
NewListenerList()

Gibt ein neues Objekt zurück, das Listener für ein Ereignis enthält.

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 angegebene Quelle. Gibt zurück true , wenn einige Einträge tatsächlich aus der Liste entfernt wurden.

Remove(Object)

Entfernt alle Listener für die angegebene Quelle.

ScheduleCleanup()

Fordert an, dass eine Bereinigung nicht verwendeter Einträge in der zugrunde liegenden Listenerliste 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)

Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, beginnt die Überwachung des verwalteten Ereignisses. Nachdem die StartListening(Object) Methode zuerst aufgerufen wurde, sollte sich der Vorgesetzte im Zustand des Aufrufens DeliverEvent(Object, EventArgs) oder DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList) jedes Mal befinden, wenn das relevante Ereignis aus der bereitgestellten Quelle behandelt wird.

StopListening(Object)

Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, hören Sie nicht mehr auf die bereitgestellte Quelle für das ereignis, das verwaltet wird.

ToString()

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

(Geerbt von Object)
VerifyAccess()

Erzwingt, dass der aufrufende Thread Zugriff auf diesen DispatcherObjectThread hat.

(Geerbt von DispatcherObject)

Gilt für:

Weitere Informationen