AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Anwendung beendet sich nicht (seit XE2)
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendung beendet sich nicht (seit XE2)

Ein Thema von Poolspieler · begonnen am 16. Okt 2011 · letzter Beitrag vom 13. Mai 2013
Antwort Antwort
Poolspieler

Registriert seit: 9. Aug 2004
165 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: Anwendung beendet sich nicht (seit XE2)

  Alt 17. Okt 2011, 22:28
Hallo zusammen,
ich habe (nach Telefonant mit Support) Delphi XE heruntergeladen und installiert.
--> Ergebnis: Auch hier das selbe Verhalten.

Kann sich irgend jemand vorstellen, an was das liegen kann bzw. wie man die Ursache aufspüren kann?

Was ist an Delphi2009 anders? Warum tritt der Fehler da nicht auf????

Ich bin für jede Hilfe dankbar!

Gruß,

Poolpsieler
Andreas
  Mit Zitat antworten Zitat
sebastianz1983

Registriert seit: 26. Jan 2010
Ort: Regensburg
14 Beiträge
 
#2

AW: Anwendung beendet sich nicht (seit XE2)

  Alt 10. Mai 2013, 12:36
Hab das gleiche Problem momentan auch. Ich programmiere ebenfalls an einer (Delphi XE) Anwendung, die mit mehreren Threads gleichzeitig arbeitet.
Der Fehler tritt leider nur sehr sporadisch auf, weswegen ich bisher keine reproduzierbaren Schritte finden konnte.

Poolspieler, konntest du dein Problem damals beheben? Und wenn ja, wie?

Sebastian
  Mit Zitat antworten Zitat
Poolspieler

Registriert seit: 9. Aug 2004
165 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Anwendung beendet sich nicht (seit XE2)

  Alt 11. Mai 2013, 12:57
Hallo Sebastian,
es lag damals an einer nicht freigegebenen TThreadlist.
Ich habe dann ein Free- und Clear-Statement in den Destructor eingefügt.
Dann war das Problem behoben.
(klingt einfach, hat mich aber einige Wochen gekostet...)

Viele Grüße,

Poolspieler
Andreas
  Mit Zitat antworten Zitat
sebastianz1983

Registriert seit: 26. Jan 2010
Ort: Regensburg
14 Beiträge
 
#4

AW: Anwendung beendet sich nicht (seit XE2)

  Alt 13. Mai 2013, 06:25
Hallo Poolspieler,

ich hab in meinem Fall zwar keine TThreadlist, werd aber nochmal drauf aufpassen, dass auch wirklich alle Threads freigegeben werden. Sitze auch schon seit geraumer Zeit an diesem Problem...
Danke für die schnelle Antwort!

Sebastian
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.212 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Anwendung beendet sich nicht (seit XE2)

  Alt 13. Mai 2013, 07:37
Ja, so verhält sich fast jedes meiner XE2-Programme: Da ist noch ein Thread am Laufen, der VCL-Thread ist aber schon aus. Du kannst die Threads auch benennen (NameThreadForDebugging oder so) um die Übersicht zu behalten.
  Mit Zitat antworten Zitat
Poolspieler

Registriert seit: 9. Aug 2004
165 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Anwendung beendet sich nicht (seit XE2)

  Alt 13. Mai 2013, 15:27
Hallo,
wenn Du keine TThreadList hast, dann wirst Du ja wahrscheinlich im onClose-Ereignis des Hauptfensters Deine Threads (oder die Klasse drüber) freigeben.
Und dort wirst Du ja sowas wie:
Code:
meinThread.free;
aufrufen.
--> Und die destroy-Routine wartet so lange, bis der Thread beendet ist.
Und im Thread steht ja wahrscheinlich sowas in der Art:
Code:
procedure TmeinThread.Execute;
begin
  inherited;
  while not Terminated do begin
    if signal_mach_was then begin
      // hier wird irgendwas gemacht --> und wenn das zu lange dauert --> dann hängt Deine Anwendung beim Schließen...
    end;
    sleep(1);
  end;
end;
.Free ruft .destroy auf.
In der Delphi-Hilfe steht zu .destroy:
Zitat:
Gibt das Thread-Objekt frei.
Rufen Sie Destroy in einer Anwendung nicht direkt auf. Verwenden Sie stattdessen Free zur Freigabe eines Threads, wenn die Eigenschaft FreeOnTerminate den Wert false hat.
Destroy veranlasst die Beendigung des Threads und wartet auf eine entsprechende Bestätigung. Danach wird die geerbte Methode Destroy aufgerufen.
Interessant dürfte vor allem der letzte Satz für Dich sein...



Viele Grüße,

Poolspieler
Andreas
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.212 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Anwendung beendet sich nicht (seit XE2)

  Alt 13. Mai 2013, 15:50
Hier mal zum Thema, den Thread nach einer Wartezeit dann mit Gewalt zu beenden falls er es nicht von alleine tut: http://www.delphipraxis.net/173890-w...gewaltsam.html
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz