假设默认计时器分辨率为15ms。在这种情况下:

Process A calls timeBeginPeriod(1);
Now timer resolution is 1ms.
Process B calls timeBeginPeriod(2);
Now timer resolution is 2ms.
Process B calls timeEndPeriod(2);

那么计时器分辨率是多少?它会回落到1或15毫秒吗?

让我们对场景进行一些修改:
Process A calls timeBeginPeriod(1);
Now timer resolution is 1ms.
Process B calls timeBeginPeriod(2);
Now timer resolution is 2ms.
Process A calls timeEndPeriod(1);

现在计时器分辨率是多少?在进程B调用timeEndPeriod(2)之前,它是否保持2ms?

最佳答案

从MSDN:



假设您的进程是唯一调用timeBeginPeriod()的进程,则:



它没有改变,因为1 ms(过程A要求)是最低分辨率(然后是应用的分辨率)。答案是:这是1毫秒,并且在进程B发出请求时它没有改变,因为它是全局设置,因此应用了限制性最高(最低)的设置。



是的,因为现在所需的最低分辨率为2 ms,所以系统将满足该请求,直到调用timeEndPeriod(2)

关于c++ - timeEndPeriod是否恢复先前的值或默认值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21187873/

10-10 20:40