Я пытаюсь использовать следующие API из Windows.
EVT_HANDLE WINAPI EvtSubscribe(
__in EVT_HANDLE Session,
__in HANDLE SignalEvent,
__in LPCWSTR ChannelPath,
__in LPCWSTR Query,
__in EVT_HANDLE Bookmark,
__in PVOID context,
__in EVT_SUBSCRIBE_CALLBACK Callback,
__in DWORD Flags
);
Этот API поддерживает две модели для подписки PULL
и PUSH
Естьдве модели подписки: модель pull и модель push.В модели push вы реализуете обратный вызов подписки и задаете для параметра Callback свою реализацию.Служба будет вызывать ваш обратный вызов для каждого события, соответствующего критериям вашего запроса (или в случае возникновения ошибки).
В модели извлечения вы создаете объект события, который сигнализирует служба.При получении сигнала вы вызываете функцию EvtNext, используя дескриптор подписки для перечисления событий.Вы должны вызывать функцию EvtClose для каждого события, которое вы перечисляете.Затем вы сбрасываете объект и ждете, пока сервис снова подаст сигнал.Этот процесс повторяется до тех пор, пока вы не отмените подписку.
Я хочу знать, какая модель будет масштабируемой.и каковы плюсы / минусы выбора одной модели над другой.