WeakEventManager Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia klasę bazową menedżera zdarzeń, który jest używany w słabym wzorcu zdarzeń. Menedżer dodaje i usuwa odbiorniki zdarzeń (lub wywołań zwrotnych), które również używają wzorca.
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
- Dziedziczenie
- Pochodne
Uwagi
Zwykle używasz słabego wzorca zdarzeń, gdy źródło zdarzeń ma okres istnienia obiektu, który jest niezależny od odbiorników zdarzeń. Użycie centralnej funkcji wysyłania zdarzeń elementu WeakEventManager umożliwia modułom obsługi odbiornika odzyskiwanie pamięci nawet wtedy, gdy obiekt źródłowy będzie się powtarzać. Z kolei zwykły punkt zaczepienia zdarzeń przy użyciu += operatora powoduje, że potencjalnie odłączone źródło będzie przechowywać odwołanie do odbiorników. Zapobiega to zbieraniu pamięci przez odbiornik w odpowiednim czasie.
Jedną z typowych sytuacji, w której relacje okresu istnienia między źródłami i odbiornikami powinny używać słabego wzorca zdarzeń, jest obsługa zdarzeń aktualizacji pochodzących z powiązań danych.
Słaby wzorzec zdarzenia może być również używany dla wywołań zwrotnych i zdarzeń regularnych.
Notatki dotyczące implementowania
Przykład niestandardowego WeakEventManagerelementu można znaleźć w temacie Weak Event Patterns (Słabe wzorce zdarzeń).
Konstruktory
| Nazwa | Opis |
|---|---|
| WeakEventManager() |
Inicjuje wartości klas bazowych, gdy jest używany jako inicjator przez konstruktor klasy pochodnej. |
Właściwości
| Nazwa | Opis |
|---|---|
| Dispatcher |
Pobiera elementDispatcher, z który DispatcherObject jest skojarzony. (Odziedziczone po DispatcherObject) |
| Item[Object] |
Pobiera lub ustawia dane przechowywane dla określonego źródła. |
| ReadLock |
Ustanawia blokadę odczytu w podstawowej tabeli danych i zwraca wartość IDisposable. |
| WriteLock |
Ustanawia blokadę zapisu w podstawowej tabeli danych i zwraca wartość IDisposable. |
Metody
| Nazwa | Opis |
|---|---|
| CheckAccess() |
Określa, czy wątek wywołujący ma dostęp do tego DispatcherObjectelementu . (Odziedziczone po DispatcherObject) |
| DeliverEvent(Object, EventArgs) |
Dostarcza zdarzenie zarządzane do każdego odbiornika. |
| DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList) |
Dostarcza zdarzenie zarządzane do każdego odbiornika na podanej liście. |
| Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
| GetCurrentManager(Type) |
Zwraca implementację WeakEventManager używaną dla podanego typu. |
| GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
| GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
| MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
| NewListenerList() |
Zwraca nowy obiekt, który zawiera odbiorniki do zdarzenia. |
| ProtectedAddHandler(Object, Delegate) |
Dodaje określonego delegata jako procedurę obsługi zdarzeń określonego źródła. |
| ProtectedAddListener(Object, IWeakEventListener) |
Dodaje udostępniony odbiornik do dostarczonego źródła dla zarządzanego zdarzenia. |
| ProtectedRemoveHandler(Object, Delegate) |
Usuwa wcześniej dodaną procedurę obsługi z określonego źródła. |
| ProtectedRemoveListener(Object, IWeakEventListener) |
Usuwa wcześniej dodany odbiornik z dostarczonego źródła. |
| Purge(Object, Object, Boolean) |
Usuwa nieaktywne wpisy odbiornika z listy danych dla podanego źródła. Zwraca wartość |
| Remove(Object) |
Usuwa wszystkie odbiorniki dla określonego źródła. |
| ScheduleCleanup() |
Żądania przeczyszczania nieużywanych wpisów na podstawowej liście odbiorników są wykonywane w wątku o niższym priorytcie. |
| SetCurrentManager(Type, WeakEventManager) |
Ustawia bieżącego menedżera dla określonego typu menedżera. |
| StartListening(Object) |
Po zastąpieniu w klasie pochodnej rozpoczyna nasłuchiwanie zarządzanego zdarzenia. Po wywołaniu StartListening(Object) metody menedżer powinien być w stanie wywołania DeliverEvent(Object, EventArgs) lub DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList) za każdym razem, gdy jest obsługiwane odpowiednie zdarzenie z podanego źródła. |
| StopListening(Object) |
Po zastąpieniu w klasie pochodnej program zatrzymuje nasłuchiwanie w podanym źródle zarządzanego zdarzenia. |
| ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
| VerifyAccess() |
Wymusza, że wątek wywołujący ma dostęp do tego DispatcherObjectelementu . (Odziedziczone po DispatcherObject) |