Как часто опрашивается клавиатура для события Form.KeyDown? - PullRequest
0 голосов
/ 09 марта 2011

Я запускаю программу со скоростью 45 кадров в секунду. Это игра, поэтому своевременный ввод данных пользователем важен. Казалось бы, событие keydown иногда выполняется ... медленно? Как будто интервал опроса меняется иногда до 3 или 4 секунд. Я абсолютно уверен, что настоящая игра не отстает, а скорее вход. Я планирую перейти на GetKeyState (), но мне все равно хотелось бы узнать фактическую частоту опроса для события KeyDown.

РЕДАКТИРОВАТЬ: думал, что я опубликую ссылку на обходной путь, который я использую здесь .

1 Ответ

5 голосов
/ 09 марта 2011

Частота опроса отсутствует - Windows использует систему обмена сообщениями для доставки нажатий клавиш (и других уведомлений о событиях) в приложения.

Физическое нажатие клавиши вызывает прерывание, которое попадает в ОС, которая в итоге отправляетсообщение в вашу программу.

Задержка, которую вы видите, может быть связана с тем, что очередь событий является общей службой в Windows (т. е. Windows отправляет сообщение немного после того, как оно произошло, когда имеется нагрузка насистема).3-4 секунды - это много задержки, хотя - я не уверен, что может быть причиной.

См. эту статью для получения дополнительной информации.

...