【发布时间】:2011-07-11 13:09:45
【问题描述】:
我正在以每秒 45 帧的速度运行一个程序。这是一个游戏,所以及时的用户输入很重要。似乎 keydown 事件有时会执行......缓慢?好像轮询间隔有时会变化多达 3 或 4 秒。我绝对确定实际游戏没有滞后,而是输入滞后。 我计划转移到 GetKeyState(),但我仍然想知道 KeyDown 事件的实际轮询频率。
编辑:我想我会发布一个链接,指向我正在使用的解决方法here。
【问题讨论】:
我正在以每秒 45 帧的速度运行一个程序。这是一个游戏,所以及时的用户输入很重要。似乎 keydown 事件有时会执行......缓慢?好像轮询间隔有时会变化多达 3 或 4 秒。我绝对确定实际游戏没有滞后,而是输入滞后。 我计划转移到 GetKeyState(),但我仍然想知道 KeyDown 事件的实际轮询频率。
编辑:我想我会发布一个链接,指向我正在使用的解决方法here。
【问题讨论】:
没有轮询频率 - Windows 使用消息传递系统将按键(和其他事件通知)传递给应用程序。
物理按键触发中断,进入操作系统,最终向您的程序发送消息。
您看到的延迟可能是因为事件队列是 Windows 中的共享服务(即 Windows 在系统负载发生后不久发送消息)。 3-4 秒是一个 很多 的延迟,不过 -- 我不确定是什么原因造成的。
更多信息请参见this article。
【讨论】: