IWeakEventListener Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет поддержку прослушивания событий для классов, ожидающих получения событий через шаблон WeakEvent и WeakEventManager.
public interface class IWeakEventListener
public interface IWeakEventListener
type IWeakEventListener = interface
Public Interface IWeakEventListener
- Производный
Комментарии
Диспетчер WeakEventManager перенаправит событие путем вызова ReceiveWeakEvent метода в классах, реализующих этот интерфейс, и которые были добавлены в качестве прослушивателей путем предварительного вызова WeakEventManager методов.
Основная причина выполнения шаблона WeakEvent заключается в том, что источник событий имеет время существования объекта, которое потенциально не зависит от прослушивателей событий. Использование диспетчеризации центрального WeakEventManager события позволяет обработчикам собирать мусор прослушивателей (или удалять их вручную), даже если время существования исходного объекта выходит за рамки прослушивателей. Напротив, обычный перехват событий с использованием +=
или эквивалентного синтаксиса событий конкретного языка приводит к тому, что потенциально подключенный источник будет содержать сильную ссылку на обработчики. Это позволяет прослушивателю своевременно собирать мусор.
Одна из распространенных ситуаций, когда связи между источниками и прослушивателями свидетельствуют об использовании этого шаблона, заключается в обработке событий обновления, поступающих из источников для привязок данных.
Шаблон WeakEvent можно использовать для прослушивания событий, которые являются внешними для вашего приложения. Вам нужно только определить WeakEventManager его, обеспечить поведение ReceiveWeakEventпрослушивания и использовать для WeakEventManager присоединения ссылок обработчика, а не +=
.
Методы
ReceiveWeakEvent(Type, Object, EventArgs) |
Получает события от централизованного диспетчера событий. |