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)

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

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