键盘是否经常轮询Form.KeyDown事件?

Blo*_*ust 0 .net c# keyboard events

我正以每秒45帧的速度运行程序.这是一个游戏,所以及时的用户输入很重要.似乎keydown事件有时会......慢慢地执行?好像轮询间隔有时会变化3或4秒.我绝对相信实际的游戏不会滞后,而是输入.我计划转移到GetKeyState(),但我仍然想知道KeyDown事件的实际轮询频率.

编辑:想我会发布一个链接到我使用的解决办法在这里.

Cam*_*ron 5

没有轮询频率--Windows使用消息传递系统向应用程序提供按键(和其他事件通知).

物理按键触发一个中断,进入操作系统,最终向您的程序发送一条消息.

您看到的滞后可能是因为事件队列是Windows中的共享服务(即,当系统上出现负载时,Windows会在发生消息后稍微发送消息).虽然3-4秒是很多滞后 - 我不确定是什么原因造成的.

有关更多信息,请参阅此文章.

  • @Ken:你能解释一下它是如何处理消息的吗?是不是.Net处理幕后的所有消息处理? (2认同)