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() |
Инициализирует значения базового класса при использовании в качестве инициализатора конструктором производного класса. |
Свойства
| Имя | Описание |
|---|---|
| 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) |
Удаляет неактивные записи прослушивателя из списка данных для предоставленного источника. Возвращает, |
| 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) |