Einzelnen Beitrag anzeigen

jaikai

Registriert seit: 1. Jun 2005
70 Beiträge
 
#1

Endlos Thread - wie einbetten?

  Alt 15. Jan 2007, 13:12
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 <> 'besetztthen 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);
Wenn die Programme das machen, wie's wir machen, wären sie unbrauchbar...
  Mit Zitat antworten Zitat