Guten Abend an alle!
Gestern musste ich ein Programm schreiben, das jede 100 ms exakt was macht.
Erster Versuch mit den Timers, die man unter Toolbox findet und habe den Intervall zwischen Ticcs gemessen.
Timer war eing. auf 100ms aber Intervall sagte immer etwas über 120 und nie konstant, immer kam einen anderen Wert (111, 113,etc). Ich kenne richtig nur die Timer in C, und da sind die ziemlich exakt. Ich konnte mich nicht vorstellen wieso solche Ungenauigkeit (über 10%) vorkommt, denn 100ms sind für ein PC eig. eine Ewigkeit. Dachte immer den "Timer" wird bei einem eigenenThread hochgezählt, so dass egal was das Programm macht, soll eig genau ticken. Ich machte auch gleichzeitig ein StressTest (HollyLoad), da ich dachte evtl ist es so, weil PC mit etwas beschäftigt ist, aber mit laufenden StressTest, waren die Intervalle genau so ungenau, nicht mehr und nicht weniger.
Ausserdem wenn ich mir das Intervall (als Timespan.totalseconds.ToString) anzeigen lasse, ab und zu kommen ganze Zahlen, ab und zu 3 Kommastellen dazu und ab und zu sogar 7 Kommastellen. Da muss ich doch was falsch machen oder?
Sind da die verschiedene Timers in VB "verschieden" bezüglich die Genauigkeit?
Woher kommt diese Ungenauigkeit in diesem Fall?
Hoffe ihr könnt mir helfen, da ich bei Google nicht viel über den Grund gefunden habe.
Gruß:)
Gestern musste ich ein Programm schreiben, das jede 100 ms exakt was macht.
Erster Versuch mit den Timers, die man unter Toolbox findet und habe den Intervall zwischen Ticcs gemessen.
Timer war eing. auf 100ms aber Intervall sagte immer etwas über 120 und nie konstant, immer kam einen anderen Wert (111, 113,etc). Ich kenne richtig nur die Timer in C, und da sind die ziemlich exakt. Ich konnte mich nicht vorstellen wieso solche Ungenauigkeit (über 10%) vorkommt, denn 100ms sind für ein PC eig. eine Ewigkeit. Dachte immer den "Timer" wird bei einem eigenenThread hochgezählt, so dass egal was das Programm macht, soll eig genau ticken. Ich machte auch gleichzeitig ein StressTest (HollyLoad), da ich dachte evtl ist es so, weil PC mit etwas beschäftigt ist, aber mit laufenden StressTest, waren die Intervalle genau so ungenau, nicht mehr und nicht weniger.
Ausserdem wenn ich mir das Intervall (als Timespan.totalseconds.ToString) anzeigen lasse, ab und zu kommen ganze Zahlen, ab und zu 3 Kommastellen dazu und ab und zu sogar 7 Kommastellen. Da muss ich doch was falsch machen oder?
Sind da die verschiedene Timers in VB "verschieden" bezüglich die Genauigkeit?
Woher kommt diese Ungenauigkeit in diesem Fall?
Hoffe ihr könnt mir helfen, da ich bei Google nicht viel über den Grund gefunden habe.
Gruß:)
Life doesn't give you a datasheet. Sometimes the docs are wrong and you have to try it.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „rgomez“ ()