Ich weiß, dieses Thema ist schon oft hier und woanders abgehandelt worden, aber so richtig schlau bin ich auch nach stundenlangem googlen immer noch nicht.
Mein Problem: ich benötige eine exakte Zeitmessung für den Abstand zwischen zwei Ereignissen, z.B. zwei Tastendrücken. Im Prinzip wie eine Stoppuhr. Es geht nicht um ein Spiel und Grafik spielt dabei auch keine Rolle.
Anforderungen:
- Auflösung 1 ms
- 100% Zuverlässigkeit
- unabhängig von Störeinflüssen (andere Windows-Prozesse, Messages, Threads, etc.)
- unabhängig von der Prozessorgeschwindigkeit
- unabhängig von der Framerate
Eigentlich sollte man dazu wohl eine spezielle Hardware einsetzen, oder eben unter DOS (Pascal) arbeiten, aber vielleicht gibt es ja doch eine Lösung für Windows/Delphi.
Folgende Möglichkeiten habe ich bis jetzt gefunden:
1) TimeGetTime (offensichtlich nicht ausreichend genau)
2) QueryPerformanceCounter (möglicherweise von anderen Systemkomponenten abhängig)
3) DXTimer aus DelphiX (setzt offensichtlich selbst die TimeGetTime-Komponente ein)
4) HPTimer (dazu habe ich keine weiteren Informationen gefunden)
5) MTimer (auch dazu keine Infos, weitere Timer unter
http://homepages.borland.com/torry/timers.htm)
6) ExacTicks (kommerzielle Alternative, kommt eigentlich nicht in Frage)
Ich bin mir nicht sicher, ob eine dieser Optionen meine Anforderungen erfüllt. Vielleicht hat ja hier im Forum schon jemand Erfahrung mit einer dieser oder anderen Lösungen gesammelt oder kann mir sonst irgendwie helfen.
Vielen Dank!