IWeakEventListener Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Unterstützt Klassen, die Ereignisse über das WeakEvent-Muster erwarten, bei der Überwachung von Ereignissen und stellt einen WeakEventManager bereit.
public interface class IWeakEventListener
public interface IWeakEventListener
type IWeakEventListener = interface
Public Interface IWeakEventListener
- Abgeleitet
Hinweise
Der WeakEventManager (ein Verteiler) leitet ein Ereignis weiter, indem die ReceiveWeakEvent -Methode für Klassen aufgerufen wird, die diese Schnittstelle implementieren und die zuvor durch Aufrufen WeakEventManager von Methoden als Listener hinzugefügt wurden.
Der Hauptgrund für das Befolgen des WeakEvent-Musters ist, wenn die Ereignisquelle über eine Objektlebensdauer verfügt, die potenziell unabhängig von den Ereignislistenern ist. Mithilfe der zentralen Ereignisverteilung von können WeakEventManager die Handler für Listener garbage collection (oder manuell gelöscht) werden, auch wenn die Lebensdauer des Quellobjekts über die Listener hinausgeht. Im Gegensatz dazu bewirkt ein normaler Ereignis-Hookup mit +=
oder einer entsprechenden sprachspezifischen Ereignissyntax, dass die potenziell noch verbundene Quelle einen starken Verweis auf die Handler enthält. Dadurch wird verhindert, dass die Listenerverweise rechtzeitig gesammelt werden.
Eine häufige Situation, in der die Beziehungen zwischen Quellen und Listenern die Verwendung dieses Musters nahe legen, ist die Behandlung von Updateereignissen, die aus Quellen für Datenbindungen stammen.
Sie können das WeakEvent-Muster verwenden, um auf Ereignisse zu lauschen, die außerhalb Ihrer Anwendung liegen. Sie müssen nur eine WeakEventManager für sie definieren, das Abhörverhalten in ReceiveWeakEventangeben und verwenden, WeakEventManager um die Handlerverweise anstelle +=
von anzufügen.
Methoden
ReceiveWeakEvent(Type, Object, EventArgs) |
Empfängt Ereignisse vom zentralen Ereignis-Manager. |