Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Programm beenden Task im Task Manager weiter vorhanden??

  Alt 5. Jun 2008, 06:00
Deine selbsterstellten Threads sollten regelmässig überprüfen, ob die Hauptanwendung schon beendet werden soll:
Delphi-Quellcode:
procedure TMyThread.Execute;
begin
   // irgend eine Berechnung / Aufgabe, die der Thread in einer Schleife ausführt
   for i := ...... do
   begin
     .....
     if Application.Terminated then
     begin
       // hier evtl. noch Aufräumarbeiten für den Thread
       ...
       Exit; // und dann so schnell wie möglich raus
     end;
   end;
end;
Das Beenden einer Anwendung wird mit Application.Terminate eingeleitet. (Auch das Schliesen des Hauptform führt intern zum Aufruf von Application.Terminate)
Dies bewirkt, dass das Flag Application.Terminated auf True gesetzt wird.
Und genau dieses Flag müssen die Threads immer mal wieder überprüfen.
  Mit Zitat antworten Zitat