Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Kann man Thread.Terminated ausserhalb des Threads verwenden? (https://www.delphipraxis.net/131129-kann-man-thread-terminated-ausserhalb-des-threads-verwenden.html)

devidespe 19. Mär 2009 11:08


Kann man Thread.Terminated ausserhalb des Threads verwenden?
 
Ich habe einen Thread, der kontinuierlich Daten verarbeitet und ein Fenster mit einem Memo, welches eine Instanz des Threads erstellt und mit einem Abbrechen-Schalter den Thread manuell beenden kann:

Delphi-Quellcode:
VAR Th1 : TBeispielThread;

...

PROCEDURE TBeispielForm.AbbrechenClick(Sender: TObject);
BEGIN
  Th1.Terminate;
  Th1.WaitFor;
END;
Nun soll aber für den Fall, dass der Thread die Arbeit erledigt hat, das Fenster automatisch geschlossen werden, und dafür gibt es ja die Terminated-Eigenschaft. Diese ist allerdings nur innerhalb des Threads aufrufbar. Nun wollte ich auf dem Formular einen Timer mit etwa 3 Sekunden einrichten, der jedesmal prüft, ob der Thread geschlossen ist und wenn ja, das Formular mit Close geschlossen wird. Wie kann man das machen bzw. ist dies überhaupt der richtige Weg, auf die Beendigung eines Threads zu warten ?

Danke für die Antworten.

jfheins 19. Mär 2009 11:24

Re: Kann man Thread.Terminated ausserhalb des Threads verwen
 
Hat der Thread nicht ein OnTerminated Event ?

devidespe 19. Mär 2009 11:39

Re: Kann man Thread.Terminated ausserhalb des Threads verwen
 
Dieses Ereignis habe ich deswegen noch nicht zugewiesen, da ich ihm nur eine Procedure innerhalb des Threads zuweisen kann.

Ich muss aber aus dem Hauptformular eine Möglichkeit finden, ob der Thread beendet ist, und nicht im Thread selbst...

devidespe 19. Mär 2009 11:47

Re: Kann man Thread.Terminated ausserhalb des Threads verwen
 
Okay, ich habs doch mit Onterminated gelöst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:02 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