ich hab mir für soetwas folgende Funktion geschrieben:
Delphi-Quellcode:
procedure TClassName.LoopWait(AMicroseconds: Cardinal);
var
lCur,
lTo : Int64;
begin
QueryPerformanceCounter(lTo);
lTo := Round(lTo + fFrequency / 1000 * AMicroseconds);
repeat
QueryPerformanceCounter(lCur);
until (lCur >= lTo);
end;
fFrequency wird vorher mit QueryPerformanceFrequency ermittelt.
Wobei ich grad am überlegen bin ob die "1000" da vielleicht doch falsch ist und nicht "1000 * 1000" heißen müsste.