Как гарантировать высокую точность таймера в Windows 11, даже если приложение полностью свернутоC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как гарантировать высокую точность таймера в Windows 11, даже если приложение полностью свернуто

Сообщение Anonymous »

Таймеры в Windows работают со скоростью 15,6 мс за такт. Таким образом, даже если вы установите таймер на 1 мс, он все равно займет 15,6 мс (это зависит от того, когда именно был запущен таймер, но в этом и суть).
Используя timeBeginPeriod(1) (из Windows API), вы можете установить более высокое разрешение — 1 мс.
К сожалению, в Windows 11 такое увеличение разрешения не гарантируется. если процесс владения окном сворачивается, согласно документации:

Начиная с Windows 11, если процесс владения окном полностью закрывается, сворачивается или В противном случае Windows не будет невидима или неслышна для конечного пользователя, поэтому Windows не гарантирует более высокое разрешение, чем разрешение системы по умолчанию. Дополнительную информацию об этом поведении см. в разделе SetProcessInformation.

Есть ли способ гарантировать более высокое разрешение таймера в Windows 11 и более поздних версиях, даже если окно закрыто? сведено к минимуму? Или есть альтернатива timeBeginPeriod(), которая может достичь такого разрешения?
Причина, по которой я спрашиваю:
Мы хотим начните опрашивать некоторые высокоточные приборы с интервалом 1 мс через последовательный порт и собирать эти данные, даже когда опрашивающее приложение свернуто.
Интересные примечания:
  • Оно не обязательно должно быть ровно 1 мс, 1,342 мс тоже подойдет, но оно должно быть около этого, а не разрешение таймера по умолчанию, равное 15,6 мс.
  • Мы используем C# и WinUI для интерфейса.
  • Опрос выполняется вне основного потока.
  • Да, мы используем timeEndPeriod. , чтобы остановить это. :)
Я искал какую-либо информацию по этому поводу, но не нашел никаких подробностей, которые могли бы пролить свет на этот вопрос.

Подробнее здесь: https://stackoverflow.com/questions/786 ... p-is-fully
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»