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

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

Сообщение Anonymous »

Таймеры в окнах работают со скоростью 15,6 мс за такт. Таким образом, даже если вы установите таймер на 1 мс, он все равно займет 15,6 мс (это зависит от того, когда именно был запущен таймер, но в этом суть).
Использование timeBeginPeriod(1) (из Windows API) вы можете установить более высокое разрешение - 1 мс.
К сожалению, в Windows 11 такое увеличение разрешения не гарантируется, если процесс владения окном сворачивается, согласно найденной документации. здесь:
https://learn.microsoft.com/en-us/windo ... -timebegin period#:~:text=Начиная с Windows 11%2C, если владелец окна процесс становится полностью закрытым%2C, свернутым%2C или иным образом невидимым или неслышимым для конечного пользователя%2C. 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#»