![]() |
Endlos Thread - wie einbetten?
Moin,
Mir ist nicht klar, wie man einen Thread endlos (bis terminated) laufen lassen kann. Ursprünglich hat der Windows-Timer einen neuen Thread erzeugt, wenn der alte durch war. Das wird mit nem Code 5 - Win32-Error gelegentlich bei Programmende quittiert. Also möchte ich nun den Thread nur einmal erzeugen. Soweit klappt das auch und ohne Error bei Ende. Allerdings läuft er wohl nur einmal durch... Wie mach ich dem Thread klar, daß er sich immer wieder wiederholen muß. Vor allem wo muss Code hinzu? Erzeugung:
Delphi-Quellcode:
type
TCheckit = class(TThread) procedure Execute; override; procedure Laufschon; end; var Checkit: TCheckit;
Delphi-Quellcode:
procedure Execute;
begin synchronize(Laufschon); end; procedure TimerCallback( TimerID, Msg : UINT; dwUser, dw1, dw2 : DWord); pascal; begin if Neuerzeugen <> 'besetzt' then begin // Alte Methode - neuen erzeugen stand hier Checkit.Resume; // Thread aktivieren end; end; Aufruf jetzt aus anderer Aufrufroutine heraus: ... Checkit := TCheckit.Create(true); // Thread inaktiv erzeugen Checkit.FreeOnTerminate := false; // Thread nach dem Beenden freigeben // Aufruf alt: //FID := TimeSetEvent ( 10000, 1000, @TimerCallback, 0, TIME_PERIODIC); |
Re: Endlos Thread - wie einbetten?
Zitat:
|
Re: Endlos Thread - wie einbetten?
1. das von Angel.
2. Du solltest den Teil, den der Thread alleine macht, aus dem synchronize herausholen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:19 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