Увеличьте разрешение таймера (высокое разрешение) в Windows без NtSetTimerResolution - PullRequest
2 голосов
/ 21 ноября 2019

Я ищу какой-то таймер с более высоким разрешением, чем в Windows по умолчанию ~ 15 мс. Мне не нужен таймер для измерения времени, а скорее таймер, который способен ждать X миллисекунд (или вызывать событие каждые X миллисекунд). Я знаю, что можно изменить разрешение таймера Windows с помощью NtSetTimerResolution, но это влияет на все приложения (которые я не хочу). Мне не нужна большая точность, так что, скажем, если я ищу 2 мс, то 1,5 мс и 2,5 мс тоже подойдут.

Использование вращателей работает, но это, очевидно, вызывает слишком большую загрузку ЦП. Мы также приветствуем креативные идеи, если они способны выполнить работу.

1 Ответ

0 голосов
/ 25 ноября 2019

NtSetTimerResolution и timeBeginPeriod могут увеличить повторное срабатывание таймера, но они являются общесистемными. Если у кого-то есть хорошая идея, пожалуйста, скажите мне.

Я не рекомендую вам это делать. Google изменил Chrome, чтобы увеличить частоту таймера только при необходимости, что работает в большинстве случаев.

Разрешение таймера по умолчанию в Windows составляет 15,6 мс - таймер прерывается 64 раза в секунду. Поскольку программа увеличивает частоту таймера, они увеличивают энергопотребление и ухудшают срок службы батареи. Они также тратят больше вычислительной мощности, чем я ожидал - они замедляют работу вашего компьютера! Из-за этих проблем Microsoft годами велела разработчикам не увеличивать частоту таймера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...