Поделиться через


WeakEventManager Класс

Определение

Предоставляет базовый класс для диспетчера событий, используемого в шаблоне слабых событий. Диспетчер добавляет и удаляет прослушиватели для событий (или обратных вызовов), которые также используют этот шаблон.

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
Наследование
WeakEventManager
Производный

Комментарии

Шаблон слабых событий обычно используется, когда источник события имеет время существования объекта, не зависящее от прослушивателей событий. Использование возможности централизованной диспетчеризации событий позволяет обработчикам WeakEventManager прослушивателя собирать мусор, даже если исходный объект сохраняется. В отличие от этого, регулярное подключение событий с помощью += оператора приводит к тому, что потенциально отключенный источник будет содержать ссылку на прослушиватели. Это предотвращает своевременную сборку мусора получателем.

Одна из распространенных ситуаций, в которой связи времени существования между источниками и прослушивателями должны использовать шаблон слабых событий, — обработка событий обновления, поступающих из привязок данных.

Шаблон слабых событий также можно использовать для обратных вызовов и регулярных событий.

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

Пример пользовательского WeakEventManagerсм. в разделе Шаблоны слабых событий.

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

WeakEventManager()

Инициализирует значения базового класса при использовании этого метода в качестве инициализатора конструктором производного класса.

Свойства

Dispatcher

Возвращает объект Dispatcher, с которым связан этот объект DispatcherObject.

(Унаследовано от DispatcherObject)
Item[Object]

Получает или задает данные, сохраняемые для указанного источника.

ReadLock

Устанавливает блокировку на чтение для базовой таблицы данных и возвращает IDisposable.

WriteLock

Устанавливает блокировку на запись для базовой таблицы данных и возвращает IDisposable.

Методы

CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)
DeliverEvent(Object, EventArgs)

Доставляет управляемое событие к каждому прослушивателю.

DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList)

Доставляет управляемое событие к каждому прослушивателю из предоставленного списка.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetCurrentManager(Type)

Возвращает реализацию WeakEventManager, используемую для указанного типа.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

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

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
NewListenerList()

Возвращает новый объект для добавления прослушивателей в событие.

ProtectedAddHandler(Object, Delegate)

Добавляет указанный делегат в качестве обработчика событий заданного источника.

ProtectedAddListener(Object, IWeakEventListener)

Добавляет указанный прослушиватель к указанному источнику для управляемого события.

ProtectedRemoveHandler(Object, Delegate)

Удаляет ранее добавленный обработчик из заданного источника.

ProtectedRemoveListener(Object, IWeakEventListener)

Удаляет предварительно добавленный прослушиватель из указанного источника.

Purge(Object, Object, Boolean)

Удаляет неактивные записи прослушивателя из списка даты для предоставленного источника. Возвращает значение true, если некоторые записи были фактически удалены из списка.

Remove(Object)

Удаляет все прослушиватели для заданного источника.

ScheduleCleanup()

Запрашивает, чтобы очистка ненужных записей из базового списка прослушивателей выполнялась в потоке с более низким приоритетом.

SetCurrentManager(Type, WeakEventManager)

Задает текущий диспетчер для заданного типа диспетчера.

StartListening(Object)

При переопределении в производном классе начинает прослушивать управляемые события. После первого вызова метода StartListening(Object) диспетчер должен находиться в состоянии вызова метода DeliverEvent(Object, EventArgs) или DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList) при каждой обработке соответствующего события из указанного источника.

StopListening(Object)

При переопределении в производном классе прекращает прослушивать указанный источник управляемого события.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
VerifyAccess()

Обеспечивает наличие у вызывающего потока доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)

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

См. также раздел