Hallo Reinhard,
Verwende ich Timer und schreibe das in einer schnellen
Zählschleife in ein Array dann liegen die Werte immer zwei bis
drei Hundertstel Sekunden auseinander, eine höhere Auflösung
ist mit meinem Rechner nicht realisierbar. Das lie1gt aber an
meinem eher antiken Gerät mit ‚nur‘ 2.3 GHz Takt und WinXP.
Mit Vista wäre das Ergebnis wohl noch schlechter. Die Werte
stammen aber aus VB6, .Net ist langsamer …Ja, ich bemerkte schon daß seltsame Werte mit „Timer“
herauskommen wenn es man damit sehr kuze Zeitabstände messen
will.
Das Problem liegt darin, dass Windows nicht für Echtzeitanwendungen konzipiert ist.
Praktisch äussert sich das darin, dass es zwar für Timer eine „Interrupt Routine“ gibt, die aber gänzlich anders funktioniert.
Grundsätzlich macht Windows alles über Messages, welche an die einzelnen Threads gesendet werden, so gibt es auch eine für den Timer-Interrupt.
Jedes Windows-Programm besitzt eine Dispatcher-Schleife, welche die Meldungen aus der Queue ausliest und dann die entsprechenden Funktionen aufruft.
Über die Queue laufen auch noch alle Tastenanschläge, Mauspositionen usw. Je nachdem was alles in der Queue rumliegt, dauert es halt entsprechend lange bis der Timer-Interrupt dann aufgerufen wird.
MfG Peter(TOO)