Hi,
ich verwende eine TThread-Klasse in zwei unterschiedlichen Zusammenhaengen (beides Windows 32bit):
1. Meine Thread-Klasse wird vom Main-Thread einer GUI-Applikation gestartet, OnTerminate wird wie erwartet ausgeloest.
2. In einem Windows Service wird die selbe Thread-Klasse vom Service Thread, der wiederum vom Mainthread in TCustomDaemon gestartet wird, gestartet. Endet in diesem Fall Execute, wird OnTerminate nicht ausgeloest - wie kann man das erklaeren bzw. wie kann ich es verhindern?
Danke!
TThread.OnTerminate wird nicht ausgeloest
-
- Beiträge: 292
- Registriert: Sa 5. Feb 2011, 20:38
- OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
- CPU-Target: 32Bit
- Wohnort: Wien
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: TThread.OnTerminate wird nicht ausgeloest
Das ist in Lazarus normal.
Thread -> Mainthread Signale (genau wie TTimer) funktionieren nur in GUI Widget Types.
(Ich kenne allerdings die Funktionsweise des für "Dienste" verwendete Widget Types nicht).
-Michael
Thread -> Mainthread Signale (genau wie TTimer) funktionieren nur in GUI Widget Types.
(Ich kenne allerdings die Funktionsweise des für "Dienste" verwendete Widget Types nicht).
-Michael
-
- Beiträge: 298
- Registriert: Di 23. Nov 2010, 23:41
- OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
- CPU-Target: 32Bit/64Bit
- Wohnort: Geldern
- Kontaktdaten:
Re: TThread.OnTerminate wird nicht ausgeloest
Ein funktionierendes Service/Daemon Beispiel: http://www.gocher.me/Daemon , erweitert läuft es auf meinem Webserver und bearbeitet alle Aufgaben im Hintergrund.
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me