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


Как работают уведомления

Уведомления возникают в приложении объекта и потоке в контейнер посредством обработчика объектов. Если объект является связанным объектом, связанный объект перехватывает уведомления из обработчика объектов и уведомляет контейнер напрямую.

Приложение объекта должно управлять запросами на регистрацию, отслеживать, где отправлять уведомления и отправлять эти уведомления при необходимости. OLE предоставляет два объекта компонента для упрощения этой задачи: OleAdviseHolder для уведомлений о составных документах и DataAdviseHolder для уведомлений о данных.

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

Время уведомлений влияет на производительность и координацию между приложением объекта и его контейнерами. В то время как уведомления отправляются слишком часто медленной обработкой, уведомления, отправленные слишком редко, приводят к выходу из-за синхронизации контейнера. Частоту уведомлений можно сравнить с частотой переопределений приложения. Таким образом, использование аналогичной логики для времени уведомлений (как используется для переопределений) является мудрым.

CreateDataAdviseHolder

CreateOleAdviseHolder

Уведомления