0
我尝试使用下面从Windows API。EvtSubscribe拉Vs的推模式
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
);
This api supports two models for subscriptionPULL
和PUSH
有两种订阅模式:拉模式和推模式。在推送模型中,您实现订阅回调并将回调参数设置为您的实现。该服务会针对与您的查询条件相匹配的每个事件(或者如果发生错误)调用回调函数。
在拉模型,创建一个事件对象,该服务信号。当发信号时,您使用订阅句柄来调用EvtNext函数来枚举事件。您必须在枚举的每个事件上调用EvtClose函数。然后重置对象并等待服务再次发出信号。重复此过程直到您取消订阅。
我想知道哪种模式会伸缩。选择一个模型而不是另一个模型的优点/缺点是什么?