In der Praxis macht einem da aber sowieso schon das Betriebssystem einen Strich durch de Rechnung, was wohl mal locker sporadische Aussetzer im Sekundenbereich oder mehr haben kann,
...wäre zum Beispiel bei einem "MIDI Sequencer" nicht gut. Was du suchst sind
Multimedia Timer.
Die Zeit darfst du dann auch nicht über now/GetSystemTime abgreifen, da dieser Wert nur alle paar ms aktualisiert wird (auf vielen Systemen nicht mal in regelmässigen Abständen).
Wenn du auf 100ns genau die Systemzeit abgreifen willst, geht das über
GetSystemTimePreciseAsFileTime; für eine Auflösung im ms Bereich also so:
Delphi-Quellcode:
procedure GetSystemTimeFT( var st : TSystemTime );
var tf : TFileTime;
begin
GetSystemTimePreciseAsFileTime ( tf );
FileTimeToSystemTime( tf, st );
end;
Oder... ...selber schreiben (
PerformanceCounter, Atomzeitserver).
Aber für die gestellte Aufgabe ist das alles viel zu viel.