我目前正在用C语言编写一个应用程序,需要每隔5毫秒启动一次计时器。从一些研究来看,最好的方法是调用timebeginperiod(…)来改变系统计时器的分辨率。它在我的示例代码中工作得很好。
我在larry osterman的msdn博客中发现了一个关于使用此功能的有趣警告:
亚当:调用timebeginperiod还会提高gettickcount的精度。
使用timebeginperiod通常是一个可怕的坏主意-我们一直在积极地删除它在windows中的所有用途,因为使用它会导致功耗问题。
有更好的方法可以确保线程及时运行。
有没有人确切地知道为什么会发生这种情况,或者那些“更好的方法”(在线程中没有具体说明)可能是什么?我们说的额外的电力消耗是多少?

最佳答案

因为它会导致更多的CPU使用。一个好的解释是Timers, Timer Resolution, and Development of Efficient Code

关于c# - 为什么通过timeBeginPeriod提高计时器分辨率会影响功耗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7590475/

10-11 16:20