AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Endlos Thread - wie einbetten?

Ein Thema von jaikai · begonnen am 15. Jan 2007 · letzter Beitrag vom 15. Jan 2007
Antwort Antwort
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
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Endlos Thread - wie einbetten?

  Alt 15. Jan 2007, 13:21
Zitat von jaikai:
Delphi-Quellcode:
procedure Execute;
begin
while not Terminated do
  begin
  synchronize(Laufschon);
  sleep(1);
  end;
end;
Das wars
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Endlos Thread - wie einbetten?

  Alt 15. Jan 2007, 13:28
1. das von Angel.
2. Du solltest den Teil, den der Thread alleine macht, aus dem synchronize herausholen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 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