¿QElapsedTimer realmente crea un temporizador?
Pregunta
QTimer
parece crear en realidad un "temporizador" que consume tics de la CPU y publica eventos, etc.¿Es lo mismo cierto para QElapsedTimer
?
¿O es algo así como Win32? GetTickCount
¿Dónde cuando llamas a un método? QElapsedTimer
¿Toma el recuento de ticks actual y lo resta del recuento donde se inició?
Quiero saber si es una buena idea tener estas cosas por ahí, o consumirán batería como QTimer
?
Solución
QTimer
"consumirá" la batería sólo en algunos casos.En concreto, si se trata de un Qt::PreciseTimer
en Windows 7 y versiones anteriores, en esos sistemas, aumentará la frecuencia de tics a 1000 Hz.Temporizadores muy cortos forzarán el mismo comportamiento.Dado que esos sistemas son no Sin tictac, la presencia de un temporizador aproximado activo no influye en el consumo de energía, ya que el sistema funciona a un ritmo fijo, sea necesario o no.
En un sistema operativo sin ticks, QTimer
no tiene tales efectos nocivos.Esto incluye OS X/xnu, Windows 8 o Linux sin ticks.
QElapsedTimer
no es un QObject
y no proporciona ningún evento asincrónico.Simplemente proporciona una interfaz para las API de tiempo de la plataforma (no API de temporizador).