Timer mit QueryPerformanceCounter?
-
Moin moin,
der QueryPerformanceCounter ist mir sehr nützlich, um Zeitmessungen durchzuführen. Besteht auch die Möglichkeit diesen als Basis für einen genauen Timer zu verwenden?
Zurzeit nutze ich bei Visual Sutdio 2008 die Funktion SetTimer, die allerdings deutliche Schwankungen in der Zykluszeit zur Folge hat.Gruß,
Nico
-
Du könntest ja z.B. einen eigenen Thread laufen lassen (dein "Timer-Thread", vielleicht noch mit hoher Priorität), in dem du dann die Zeit misst und gewisse Sachen ausführst. Ob das nun wirklich genauer wäre, weiß ich nicht (weißt du denn, dass ein normaler Timer nicht mit QueryPerformanceCounter implementiert ist?). Unter Windows wirst du aber immer leichte Schwankungen drin haben, da das nunmal kein Echtzeit-OS ist.
-
Du könntest dir auch einen Multimedia-Timer zu nutze machen (geht bis auf 1-2ms genau). Der ist ∑genauer als der "normale" Timer, der doch stark von der systemlast abhängt.
schau dafür mal bei google nach winmm.lib oder Multimediatimer.
-
Hmmm, ob QueryPerformanceCounter() die richtige Lösung ist kann ich nicht sagen.
Denn das hängt ganz entscheidend davon ab was für Zeiten Du messen möchtest:
Benutzer-Reaktionen?
Geräte-Timeout?
Laufzeit eines Shareware-Programms, um nach 5 Minuten automatisch zu beenden?
Dauer einer Funktion?
Zeitabstände zwischen zwei empfangenen Datenpakete von der seriellen Schnittstelle?Wie Du siehst, es gibt vielfältige Möglichkeiten Zeiten zu messen. Und für jede Situation gibts (fast) immer eine andere Lösung.
Deshalb können wir Dir eher vernünftig helfen, wenn Du uns verrätst, was Du messen möchtestMartin