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函數。然後重置對象並等待服務再次發出信號。重複此過程直到您取消訂閱。
我想知道哪種模式會伸縮。選擇一個模型而不是另一個模型的優點/缺點是什麼?