【发布时间】:2015-03-14 06:54:29
【问题描述】:
我正在尝试从基于表单的程序中进行 CPU 密集型后台处理。
我正在使用WH_FOREGROUNDIDLE 来检测空闲。钩子进行一些处理,更新表单并再次等待钩子。
在我单击其他程序然后钩子停止之前,它运行良好。
如果我点击表单,idle hook 会再次开始。
有没有办法解决这个问题?还是我使用了错误的方法来实现我的目标?
【问题讨论】:
标签: c++ windows idle-processing
我正在尝试从基于表单的程序中进行 CPU 密集型后台处理。
我正在使用WH_FOREGROUNDIDLE 来检测空闲。钩子进行一些处理,更新表单并再次等待钩子。
在我单击其他程序然后钩子停止之前,它运行良好。
如果我点击表单,idle hook 会再次开始。
有没有办法解决这个问题?还是我使用了错误的方法来实现我的目标?
【问题讨论】:
标签: c++ windows idle-processing
您可以使用GetLastInputInfo 来确定用户是否对当前进程处于空闲状态。这在例如将用户标记为离开的聊天程序中很有用。但是,它并不代表系统范围的空闲状态。但是在计时器上对此进行测试将允许您仅在用户当前未与应用程序交互时运行您的任务,而无需依赖仅由于用户活动而传递的消息。
【讨论】: