【发布时间】:2020-03-17 01:18:14
【问题描述】:
我正在寻找某种具有比 Windows 默认约 15 毫秒更高分辨率的计时器。我不需要一个计时器来测量时间,而是一个能够等待 X 毫秒(或每 X 毫秒调用一次事件)的计时器。我知道可以使用NtSetTimerResolution 更改Windows 计时器分辨率,但这会影响所有应用程序(我不想要)。我不需要太多的精度,所以说如果我在寻找 2ms,那么 1.5ms 和 2.5ms 也可以。
使用微调器可以工作,但这显然会导致过多的 CPU 使用率。只要能够完成工作,也欢迎有创意的想法。
【问题讨论】:
-
你试过 std::chrono 吗?
-
影响每个应用程序的问题是什么?它不会影响计时器持续时间本身,只会影响最小分辨率。
-
请选择一种语言,
c++和c#的答案大不相同。 -
@Federico 我需要每 2 毫秒运行一次检查,正常的 Windows 计时器不允许该分辨率(~15.6 毫秒)。您可以使用 NtSetTimerResolution 更改计时器分辨率,但缺点是所有系统计时器都会更改其分辨率。