Hier mal ein kleiner Auschnitt aus dem oben genannten Beispiel, wie man es nicht machen sollte:
Delphi-Quellcode:
procedure TMyThread.Execute;
var
T:Integer;
begin
t:=FTimeToWork;
Form1.Memo1.Lines.Add('
Begin execution');
// AAARGH nie ohne Synchronisierung auf die GUI zugreifen!!! (Siehe Forum)
while not Terminated
and (t>0)
do
begin
Form1.Memo1.Lines.Add(format('
Remaining %5.2f%%',[t/FTimeToWork*100]));
Sleep(500);
dec(t,500);