
Zitat von
gsh:
So müsste es funktionieren:
Delphi-Quellcode:
//Erzeugt den Thread
procedure TForm1.Button1Click(Sender: TObject);
begin
AThread := TMyThread.Create(True);
AThread.Priority := tpNormal;
//AThread.FreeOnTerminate := True; //Nicht automatisch freigeben
//AThread.OnTerminate := MyThreadTerminate; //Braucht man nicht außer du willst noch was anderes darin machen
AThread.Resume;
end;
//Gibt dem Benutzer die Möglichkeit, den Thread zu Beenden
procedure TForm1.Button2Click(Sender: TObject);
begin
if Assigned(AThread) then
begin
AThread.Terminate;
AThread.WaitFor;
FreeAndNil(AThread);
end;
//Hier steht noch Code, der erst ausgeführt werden darf, wenn AThread beendet ist.
end;
Mit dieser Lösung wird der Thread aber nicht freigegeben, wenn Button2 nicht geklickt wird!