Zitat von
Moony:
Hallo......weiß keiner eine Antwort????
Du hast doch schon gute Antworten bekommen.
Also, dein Programm darf erst dann beendet werden, wenn alle deine Thread beendet sind.
Wird das nicht beachtet, dann knallt's !!
Wenn du deine Thread-Objekte nicht in einer Jobliste sammelst, dann hast du später
keinen Zugriff auf deine Threadobjekte mehr und weisst nicht, ob dein Programm beendet werden darf.
So ein Thread kann ja auch recht lange laufen.
Deshalb muss der Thread immer wieder das Property
Terminated abfragen, ob er eigentlich noch weiterlaufen darf:
Delphi-Quellcode:
procedure TMyThread.Execute;
var
i : integer;
begin
for :=1 to 1000000 do
begin
DoWork;
if Terminated then // <====
begin
ReturnValue := 9999; // signalisieren, dass wir unterbrochen wurden
break;
end;
end;
ReturnValue := 0; // Thread beendet, Aufgabe zu 100% erfüllt
end;
Hast du das beachtet ??