AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [solved]Thread terminated nicht, obwohl OnTerminate
Thema durchsuchen
Ansicht
Themen-Optionen

[solved]Thread terminated nicht, obwohl OnTerminate

Ein Thema von silver-moon-2000 · begonnen am 10. Apr 2008 · letzter Beitrag vom 11. Apr 2008
Antwort Antwort
Seite 2 von 2     12   
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#11

Re: Thread terminated nicht, obwohl OnTerminate aufgerufen

  Alt 11. Apr 2008, 07:56
Zitat von alzaimar:
Also:
1. MyThread.FreeOnTerminate := False;
2. Spendiere dem Thread eine 'Public Property Done : Boolean'
3. Im TMyThread.Create: 'Done := False'
4. Letzte Zeile der 'Execute-Methode' : 'Done := True'
5. Nun kannst Du vom Haupthtread prüfen, ob der Thread fertig ist.
6. Freigeben des Threads nicht vergessen.
alzaimer, Du ruiniert mir die Freude, dass es gerade so schön geklappt hat (Ironie!) . An eine Property hatte ich gar net gedacht. Wird sofort umgesetzt

Zitat von alzaimar:
P.S.: Die Eigenschaft 'Terminated' dient als Signal von außen. Du musst in der Execute-Methode diese Eigenschaft prüfen, wenn Du den Thread beenden möchtest. Die Eigenschaft wird NICHT gesetzt, wenn der Thread fertig ist.
Wieder was gelernt, danke.
(Selbsterkenntnis: Hätte mir vermutlich auch ein Blick in die OH weitergeholfen)

Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Thread terminated nicht, obwohl OnTerminate aufgerufen

  Alt 11. Apr 2008, 07:58
Noch Ergänzung:

Das Ereigbniss OnTerminate wird mit Synchronize aufgerufen. (Was ja zu den bekannten Problemen von TThread in einer DLL führt). Aber hier kannst du problemlos in OnTerminate auf die VCL zugreifen. Du bist ja sowieso im Mainthread.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#13

Re: Thread terminated nicht, obwohl OnTerminate aufgerufen

  Alt 11. Apr 2008, 08:03
Zitat von sirius:
Noch Ergänzung:

Das Ereigbniss OnTerminate wird mit Synchronize aufgerufen. (Was ja zu den bekannten Problemen von TThread in einer DLL führt). Aber hier kannst du problemlos in OnTerminate auf die VCL zugreifen. Du bist ja sowieso im Mainthread.
Ich habe eingfach gestern in geistiger Umnachtung einfach alles VCL ähnliche im Thread-Bereich auskommentiert, ohne nachzudenken, was ich genau tue (war mir irgendwie zu spät gestern)
Danke für Deine Klarstellung.


Von meiner Seite aus sehe ich das Thema als sogut wie erledigt an.
Natürlich freue ich mich über (konstruktive ) Kommentare jeder Art.
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  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:37 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