SetWinEventHook的性能成本与c#中的轮询相比?

时间:2016-12-09 11:32:32

标签: c# performance hook polling

我正在开发一个时间跟踪应用程序,它监视窗口更改和用户空闲。 我的问题是:哪一个在性能方面花费更多,浪费系统资源:

  • 使用SetWinEventHook(EVENT_SYSTEM_FOREGROUND),

  • 或设置Timer.Tick并检查活动窗口标题是否一直更改user32.dll GetForegroundWindow()和GetWindowText()?

为了测试用户空闲,我已经发现使用低级鼠标和键盘钩子比使用Timer调用GetLastInputInfo()更昂贵。 (或者我做错了什么?) 我将这些来源用于键盘和鼠标钩:https://blogs.msdn.microsoft.com/toub/2006/05/03/low-level-keyboard-hook-in-c/ 并为窗口更改钩子: Detect active window changed using C# without polling

谢谢!

0 个答案:

没有答案