一段时间不事件后,我想将用户注销我的应用程序。

将我的非事件检查放在应用程序的OnIdle处理程序或计时器处理程序中会更好吗?

粒度不是太重要。注销可能是正负几秒钟,甚至可能是一分钟。

我感觉到该应用程序的OnIdle将会频繁触发。有什么建议吗?代码本身只有几行。

最佳答案

您正在使用GetLastInputInfo来测量空闲时间。那似乎很明智。所以问题归结为



每次清空邮件队列时都会触发OnIdle。如果没有消息放入队列,OnIdle将永远不会触发。因此,OnIdle不是周期性的。如果您想定期检查不事件状态,则OnIdle可能不起作用。计时器肯定可以工作。

您可以这样想:OnIdle事件在空闲计数器启动时触发,但是您需要在空闲计数器到期时触发的事件。



实际上,您的问题与此相反!

请注意,您可以对此进行试验,发现OnIdle似乎可以正常工作,并且会定期触发。例如,如果您的应用使用任何计时器,则OnIdle将在每个计时器事件后触发。因为计时器事件进入队列,并且一旦处理完毕,就会触发OnIdle。但是,如果您的应用程序没有计时器,那么如果您停止与程序进行交互,则可以期望OnIdle根本不会触发。

关于delphi - 我应该在OnIdle处理程序或计时器中进行定期检查吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12719843/

10-11 14:11