Gibt nix besseres, könntest höchstens kombinieren.
Delphi-Quellcode:
procedure Delay(dwMilliseconds: Longint);
var
iStart, iStop: DWORD;
begin
iStart := GetTickCount;
repeat
iStop := GetTickCount;
Application.ProcessMessages;
sleep(100);
until (iStop - iStart) >= dwMilliseconds;
end;
Damit du nicht 100% cpu fährst. Oder benutz für deine Aufgaben den besseren und ordentlichen Weg, sprich: Timer bzw. Threads.
Wer später bremst ist eher tot.