AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Programm beenden Task im Task Manager weiter vorhanden???
Thema durchsuchen
Ansicht
Themen-Optionen

Programm beenden Task im Task Manager weiter vorhanden???

Offene Frage von "steewan"
Ein Thema von steewan · begonnen am 4. Jun 2008 · letzter Beitrag vom 5. Jun 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

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

  Alt 4. Jun 2008, 21:38
Du hast angezweifelt, dass ein Programm nicht eendet wird, wenn noch ein Thread läuft und hast das mit den Funktionsaufrufen bei einem Delphi Programm belegt. Ich habe aber bei Jeffrey Richter "Windows Programmierung für Experten" gelsen gehabt, dass ´wenn noch ein Thread läuft der Prozess nicht beendet wird. Und habe vermutet, dass der Programme, die In C gewschrieben sind, sich da anders verhalten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.107 Beiträge
 
Delphi 11 Alexandria
 
#12

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

  Alt 4. Jun 2008, 21:40
Moin Stefan,

also ich habe diesen Effekt schon gehabt, wenn ein Programm noch viel aufzuräumen hatte, bevor es sich endgültig beendet hat.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
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
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#14

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

  Alt 5. Jun 2008, 15:21
@Luckie: Meines Wissens beendet Windows Anwendungen automatisch erst dann, wenn alle Threads beendet sind. Sowohl Delphi- als auch C-RTL rufen aber, nachdem der Haupt-Programmblock (begin-end. bzw. Main) beendet ist, ExitProcess auf.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz