![]() |
Threadphänomen. Threads terminieren nicht richtig
Hallo Leute!
Habe folgende Konstellation: Ein Thread (weiter als Monitorthread) erzeugt und ruft abwechselnd zwei Threads (weiter als KinderThreads) auf. Diese KinderThreads setzen einzelnd Zeichen ( der eine 'a' bis 'z', der andere '1' bis '9' ) auf der seriellen Schnittstelle ab und terminieren anschließend. Nun beobachte ich folgendes Phänomen: Wenn ich den MonitorThread terminiere und dann irgendwann wieder neu erzeuge, nimmt das zuletzt laufende KinderThread seine Arbeit dort auf, wo er aufhörte, nachdem der Monitorthread terminierte. z.B '123456789ABCDERF' <MonitorThread terminiert> .... <Neuer MonitorThread erzeugt> 'GHIJKLMNO' <MonitorThread terminiert> .... <Neuer MonitorThread erzeugt> 'PQRST' usw... Hier ist die Execute des MonitorThreads:
Delphi-Quellcode:
Hat Jemand eine Idee, wie sich das erklären lässt? Denn für mich hat es den Anschein, als würde der zuletzt laufende KinderThread nur "schlafengelegt", der dann
procedure TMonitorThread.Execute;
var T1, T2 : TerzeugerThread; begin while NOT Terminated do begin T1 := TErzeugerThread.CreateThread(FALSE, '1', '9'); T1.Priority := tpLowest; T1.Resume; T1.WaitFor; T1.Free; T2 := TErzeugerThread.CreateThread(FALSE, 'A', 'Z'); T2.Priority := tpLowest; T2.Resume; T2.WaitFor; T2.Free; end; end; später seine Arbeit fortsetzt. Erst danach werden neue Kinder im MonitorThread erzeugt. |
Re: Threadphänomen. Threads terminieren nicht richtig
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 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