WeakEventManager WeakEventManager WeakEventManager WeakEventManager Class

Определение

Предоставляет базовый класс для диспетчера событий, используемого в шаблоне слабых событий.Provides a base class for the event manager that is used in the weak event pattern. Диспетчер добавляет и удаляет прослушиватели для событий (или обратных вызовов), которые также используют этот шаблон.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
Наследование
WeakEventManagerWeakEventManagerWeakEventManagerWeakEventManager
Производный

Комментарии

Шаблон слабых событий обычно используется, когда источник событий имеет время существования объекта, не зависящее от прослушивателей событий.You typically use the weak event pattern when the event source has an object lifetime that is independent of the event listeners. Использование центральной функции WeakEventManager диспетчеризации событий позволяет обработчикам прослушивателя собирать мусор, даже если исходный объект сохраняется.Using the central event dispatching capability of a WeakEventManager allows the listener's handlers to be garbage collected even if the source object persists. В отличие от этого, обычное подключение события += с помощью оператора приводит к тому, что потенциально отключенный источник может содержать ссылку на прослушиватели.By contrast, a regular event hookup using the += operator causes the potentially disconnected source to hold a reference to the listeners. Это предотвращает своевременное выполнение сбора мусора для получателя.This prevents the receiver from being garbage collected in a timely fashion.

Одна из распространенных ситуаций, когда отношения времени существования между источниками и прослушивателями должны использовать шаблон слабых событий, — это обработка событий обновления, поступающих от привязок данных.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.

Шаблон слабых событий также можно использовать для обратных вызовов и регулярных событий.The weak event pattern can also be used for callbacks and regular events.

Примечания для тех, кто наследует этот метод

Пример пользовательского WeakEventManagerсм. в разделе Шаблоны слабых событий.For an example of a custom WeakEventManager, see Weak Event Patterns.

Конструкторы

WeakEventManager() WeakEventManager() WeakEventManager() WeakEventManager()

Инициализирует значения базового класса при использовании этого метода в качестве инициализатора конструктором производного класса.Initializes base class values when it is used as the initializer by the constructor of a derived class.

Свойства

Dispatcher Dispatcher Dispatcher Dispatcher

Возвращает объект Dispatcher, с которым связан этот объект DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)
Item[Object] Item[Object] Item[Object] Item[Object]

Получает или задает данные, сохраняемые для указанного источника.Gets or sets the data being stored for the specified source.

ReadLock ReadLock ReadLock ReadLock

Устанавливает блокировку на чтение для базовой таблицы данных и возвращает IDisposable.Establishes a read-lock on the underlying data table, and returns an IDisposable.

WriteLock WriteLock WriteLock WriteLock

Устанавливает блокировку на запись для базовой таблицы данных и возвращает IDisposable.Establishes a write-lock on the underlying data table, and returns an IDisposable.

Методы

CheckAccess() CheckAccess() CheckAccess() CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)
DeliverEvent(Object, EventArgs) DeliverEvent(Object, EventArgs) DeliverEvent(Object, EventArgs) DeliverEvent(Object, EventArgs)

Доставляет управляемое событие к каждому прослушивателю.Delivers the event being managed to each listener.

DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList) DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList) DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList) DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList)

Доставляет управляемое событие к каждому прослушивателю из предоставленного списка.Delivers the event being managed to each listener in the provided list.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetCurrentManager(Type) GetCurrentManager(Type) GetCurrentManager(Type) GetCurrentManager(Type)

Возвращает реализацию WeakEventManager, используемую для указанного типа.Returns the WeakEventManager implementation that is used for the provided type.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
NewListenerList() NewListenerList() NewListenerList() NewListenerList()

Возвращает новый объект для добавления прослушивателей в событие.Returns a new object to contain listeners to an event.

ProtectedAddHandler(Object, Delegate) ProtectedAddHandler(Object, Delegate) ProtectedAddHandler(Object, Delegate) ProtectedAddHandler(Object, Delegate)

Добавляет указанный делегат в качестве обработчика событий заданного источника.Adds the specified delegate as an event handler of the specified source.

ProtectedAddListener(Object, IWeakEventListener) ProtectedAddListener(Object, IWeakEventListener) ProtectedAddListener(Object, IWeakEventListener) ProtectedAddListener(Object, IWeakEventListener)

Добавляет указанный прослушиватель к указанному источнику для управляемого события.Adds the provided listener to the provided source for the event being managed.

ProtectedRemoveHandler(Object, Delegate) ProtectedRemoveHandler(Object, Delegate) ProtectedRemoveHandler(Object, Delegate) ProtectedRemoveHandler(Object, Delegate)

Удаляет ранее добавленный обработчик из заданного источника.Removes the previously added handler from the specified source.

ProtectedRemoveListener(Object, IWeakEventListener) ProtectedRemoveListener(Object, IWeakEventListener) ProtectedRemoveListener(Object, IWeakEventListener) ProtectedRemoveListener(Object, IWeakEventListener)

Удаляет предварительно добавленный прослушиватель из указанного источника.Removes a previously added listener from the provided source.

Purge(Object, Object, Boolean) Purge(Object, Object, Boolean) Purge(Object, Object, Boolean) Purge(Object, Object, Boolean)

Удаляет неактивные записи прослушивателя из списка даты для предоставленного источника.Removes inactive listener entries from the data list for the provided source. Возвращает значение true, если некоторые записи были фактически удалены из списка.Returns true if some entries were actually removed from the list.

Remove(Object) Remove(Object) Remove(Object) Remove(Object)

Удаляет все прослушиватели для заданного источника.Removes all listeners for the specified source.

ScheduleCleanup() ScheduleCleanup() ScheduleCleanup() ScheduleCleanup()

Запрашивает, чтобы очистка ненужных записей из базового списка прослушивателей выполнялась в потоке с более низким приоритетом.Requests that a purge of unused entries in the underlying listener list be performed on a lower priority thread.

SetCurrentManager(Type, WeakEventManager) SetCurrentManager(Type, WeakEventManager) SetCurrentManager(Type, WeakEventManager) SetCurrentManager(Type, WeakEventManager)

Задает текущий диспетчер для заданного типа диспетчера.Sets the current manager for the specified manager type.

StartListening(Object) StartListening(Object) StartListening(Object) StartListening(Object)

При переопределении в производном классе начинает прослушивать управляемые события.When overridden in a derived class, starts listening for the event being managed. После первого вызова метода StartListening(Object) диспетчер должен находиться в состоянии вызова метода DeliverEvent(Object, EventArgs) или DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList) при каждой обработке соответствующего события из указанного источника.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) StopListening(Object) StopListening(Object) StopListening(Object)

При переопределении в производном классе прекращает прослушивать указанный источник управляемого события.When overridden in a derived class, stops listening on the provided source for the event being managed.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)
VerifyAccess() VerifyAccess() VerifyAccess() VerifyAccess()

Обеспечивает наличие у вызывающего потока доступ к этому DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)

Применяется к

Дополнительно