Ich frage mich, was die Genauigkeit der Timer-Klasse in System.Timers ist, denn es ist ein double (was darauf hindeuten würde, dass Sie Bruchteile von Millisekunden haben können). Wie hoch ist sie?
Antwort
Zu viele Anzeigen?Die Timer-Auflösung geht ohne großen Implementierungsaufwand bis in den 1ms-Bereich. Ich habe gerade den Grund für die double
Präzision in 本答 . Wenn ein System so konfiguriert wird, dass es mit 1024 Unterbrechungen pro Sekunde läuft (unter Verwendung der Multimedia-Timer-API), beträgt die Zeit zwischen den Unterbrechungen 0,9765625 ms. Die Standardauflösung für Zeitangaben ist 100ns. Diese Werte werden als Ganzzahlen gespeichert. Der Wert 0,9765625 kann nicht gespeichert werden ohne Genauigkeitsverlust in einer Ganzzahl mit 100 ns Auflösung gespeichert werden. Die letzte Ziffer (5) steht für 500 ps. Die Auflösung muss also um drei Größenordnungen höher sein. Die Speicherung dieser Zeit Werte in Ganzzahlen mit einer Auflösung von 100 ps ist hoffnungslos, da eine 8-Byte-Ganzzahl mit 100 ps Auflösung nach 21350 Tagen oder etwa 58 Jahren ablaufen würde. Diese Zeitspanne ist zu kurz, um von irgendjemandem akzeptiert zu werden (denken Sie an das Y2K-Szenario!).
In der verlinkten Antwort erfahren Sie mehr über die Einzelheiten.
- See previous answers
- Weitere Antworten anzeigen