Eine andere "einfach" Lösung ist halt, statt dem Sleep (von oben) einfach etwas mehr Code einzufügen ... denn wenn zwischen den einzelnen aufrufen von SYNCHRONIZE genug Zeit vergeht, dann würde es ja dennoch "laufen"
Delphi-Quellcode:
procedure tmythread.Execute;
begin
tcount:=1;
repeat
synchronize(display);
... // viel Rechenzeit
until tcount>1000;
end;
procedure tmythread.Execute;
begin
tcount:=1;
repeat
//if display and $FF = 1 then synchronize(display);
if display mod 256 = 1 then synchronize(display); // mit AND isses schneller
... // nich ganz so viel Rechenzeit
until tcount>1000;
end;
// die 256/$FF sind nur als Beispiel und müßten entsprechend angepasst werden ;)