Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.029 Beiträge
 
Delphi 12 Athens
 
#6

Re: AThread.WaitFor gibt Fehler "Das Thread Handle ist

  Alt 23. Okt 2009, 13:39
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!
Uwe Raabe
  Mit Zitat antworten Zitat