Mir kommts nicht unbedingt auf Genauigkeit an, ich möchte nur, dass mein Programm eine zuverlässige Anzahl von Klicks pro Sekunde durch den Timer bekommt
Da ist nen timer in ner singlethread umgebung das wohl am wenigsten geeignete mittel ....
sobald irgend was aufwendigereres gestartet wurde, "verhungert" dein timer ...da kannst nix dran machen.
- alternative waere, die aufwendigere möglichkeit waere, die ziemlich langwierigen jobs zu zerhacken, damit sie ganz grob regelmaessig zeit fuer den timer freischaufeln koennen .... sehr ungenau, sehr aufwendig ....
- besser gehts dann schon mit multithreading, dh. du laesst das unterbrechen der jobs den BS scheduler zu .... d.h. du bekommst "releativ" genau vom BS scheduler rechenzeit fuer deine threads zugeteilt, dementsprechend genau kann dein timer werden.
Im 10x millisekunden bereich durchaus brauchbar ....
Ist halt dann vom systemzustand, den gestarteten programmen etc abhaengig .... das heisst programme mit hoeherer Prio und treiber / programme auf kernelebene koennen Dir immer noch dazwischen funken.
und je nach anzahl und prio der gestarteten prozesse werden die zeitabstaende und max zeitdauer, fuer den focus groesser / geringer ...
Kannst du damit auch nicht leben, helfen nur noch echtzeit BS ... dort kannst den scheduler selber konfigurieren, und du bekommst dann definitiv zu bestimmten zeiten deine rechenzeit ....
Fazit:
Unter windows/ standard linux verlass dich niemals auf timer ... zeiten selber messen ... sich das rtc register des prozessors holen(queryperformancecounter) kostet ned viel rechenzeit, und du weisst wo du grad bist .....
QTimer / QBasicTimer
Die doku ist recht duerftig .....
Welches BS faehrst du denn ?
Ich persoenlich glaub, das zumindest unter windows da kein grosser unterschied ist .... als Singlethread anwendung und wrapper der winapi, hat die QT nur die moeglichkeit, timer ueber die WM_TIMER funktionalitaet der fenster aufzubauen .... Vielleicht macht QTimer bisserl mehr QT intern als QBasicTimer, aber glaub ned das das wirklich ins gewicht faellt ....
Weiss ned ob Linux im X mehr ankermoeglichkeiten hat als in der windows api .... kann sein das es da mehr möglichkeiten gibt.
Ciao ...