题
QTimer
似乎实际上创建了一个“计时器”,它消耗CPU滴答声并发布事件等。对于 QElapsedTimer
?
或者这只是类似于 win32 的东西 GetTickCount
当你调用一个方法时 QElapsedTimer
它获取当前的滴答计数并从它开始的计数中减去?
我想知道把这些东西挂在身边是否是个好主意,或者它们会像电池一样消耗电池吗? QTimer
?
解决方案
QTimer
仅在某些情况下才会“吃掉”电池。具体来说,如果它是一个 Qt::PreciseTimer
在 Windows 7 及更早版本上 - 在这些系统上,它将把滴答频率提高到 1000Hz。非常短的计时器将强制执行相同的行为。由于这些系统是 不是 无滴答,活动粗定时器的存在对功耗没有任何影响,因为系统无论是否需要都以固定速率滴答。
在无滴答操作系统上, QTimer
不会有这样的不良影响。这包括 OS X/xnu、Windows 8 或无滴答 Linux。
QElapsedTimer
不是一个 QObject
并且不提供任何异步事件。它只是提供了平台时间 API 的接口(不是 计时器 API)。
不隶属于 StackOverflow