Domanda

QTimer sembra effettivamente creare un "timer" che consuma zecche e post della CPU eventi ecc. È lo stesso vero per QElapsedTimer?

O è questo solo qualcosa come il GetTickCount di Win32, dove si chiama un metodo su QElapsedTimer, afferra il conteggio corrente del tick e sottrae dal conteggio in cui è stato avviato?

Voglio sapere se è una buona idea avere queste cose in giro, o mangeranno la batteria come QTimer?

È stato utile?

Soluzione

QTimer "mangia" la batteria solo in alcuni casi.Nello specifico, se è un Qt::PreciseTimer su Windows 7 e in precedenza - su tali sistemi, rampare la frequenza di spunta a 1000Hz.I timer molto brevi costringeranno lo stesso comportamento.Dato che tali sistemi sono non senza tacere, la presenza di un timer grossolano attivo non fa nulla per il consumo energetico, poiché il sistema si spunta a una velocità fissa se ne ha bisogno o meno.

In un sistema operativo senza tacere, QTimer non ha effetti negativi.Ciò include OS X / XNU, Windows 8 o Linux senza testo.

QElapsedTimer non è un QObject e non fornisce eventi asincroni.Fornisce semplicemente un'interfaccia per le API del tempo della piattaforma ( non API del timer).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top