Question

QTimer semble en fait créer une "minuterie" qui consomme des ticks CPU et publie des événements, etc.Est-ce la même chose pour QElapsedTimer?

Ou est-ce juste quelque chose comme Win32 GetTickCount où quand vous appelez une méthode sur QElapsedTimer il récupère le nombre de ticks actuel et soustrait du nombre où il a commencé ?

Je veux savoir si c'est une bonne idée de laisser ces choses traîner, ou est-ce qu'elles mangeront de la batterie comme QTimer?

Était-ce utile?

La solution

QTimer ne "mangera" la batterie que dans certains cas.Plus précisément, s'il s'agit d'un Qt::PreciseTimer sous Windows 7 et versions antérieures, sur ces systèmes, la fréquence de tic-tac augmentera à 1 000 Hz.Des minuteries très courtes forceront le même comportement.Puisque ces systèmes sont pas Sans chatouillement, la présence d'une minuterie grossière active n'a aucun effet sur la consommation d'énergie, puisque le système tourne à un rythme fixe, qu'il en ait besoin ou non.

Sur un système d'exploitation sans chatouillement, QTimer n'a pas de tels effets néfastes.Cela inclut OS X/xnu, Windows 8 ou Linux sans chatouillement.

QElapsedTimer n'est pas un QObject et ne fournit aucun événement asynchrone.Il fournit simplement une interface aux API temporelles de la plateforme (pas API de minuterie).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top