AGB  ·  Datenschutz  ·  Impressum  







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

Thread in die unendlichkeit...

Ein Thema von braingrenade · begonnen am 1. Sep 2003 · letzter Beitrag vom 3. Sep 2003
Antwort Antwort
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#1

Thread in die unendlichkeit...

  Alt 1. Sep 2003, 20:45
Moin Leute !

Wie kann ich einen thread unendlich lang laufen lassen ?
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#2

Re: Thread in die unendlichkeit...

  Alt 1. Sep 2003, 20:54
ins Execute:
Delphi-Quellcode:
while True do
  writeln("Hello, world");


aber im Ernst: Ein Thread läuft solange, bis er fertig ist. Eine Endlosschleife lässt ihn bis zum Sankt-Nimmerleinstag laufen. Aber damit du ihn überhaupt wieder abbrechen kannst, solltest du immer auf ein Terminate prüfen
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#3

Re: Thread in die unendlichkeit...

  Alt 1. Sep 2003, 20:55
MIt ner endlos-SChleife im thread hab ich das auch schon probiert ,
aber das will nich richtig , gibt's keine Möglichkeit den Thread nach dem beenden glaich wieder von neuem zu starten?
edit : Wie kann ich in auf Terminate prüfen ?
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Thread in die unendlichkeit...

  Alt 1. Sep 2003, 21:20
Delphi-Quellcode:
while not Terminated do
begin
  //mach was
end;
So läuft er, bis er terminiert ist.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#5

Re: Thread in die unendlichkeit...

  Alt 1. Sep 2003, 21:33
Wer will schon sowas?
Bessere alternative, den Rechner zu beschäftigen:
function SETI(Comitment : TCpuPower): ET
Tim Leuschner
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Thread in die unendlichkeit...

  Alt 1. Sep 2003, 21:45
Zitat von tommie-lie:
Eine Endlosschleife lässt ihn bis zum Sankt-Nimmerleinstag laufen.
Nein, nur so lange, wie der Parent-Prozess läuft.
Zitat:
Aber damit du ihn überhaupt wieder abbrechen kannst, solltest du immer auf ein Terminate prüfen
Und was bringt das? Das lioefert entweder "läuft noch" oder "läuft nicht mehr" zurück. Abbrechen kann er auch ohne zu testen.

Reden wir hier eigentlich von API-Threads oder vom TThread VCL Objekt?

Und poste mal, was bei dir in der Execute Methode bzw. in der Thread-Funktion ausgeführt wird.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#7

Re: Thread in die unendlichkeit...

  Alt 2. Sep 2003, 15:14
jo , hier is mla der code ,
aber wenn ihr's compiliert herscht akute abstürtz gefahr (ca .150 TThreads) !!!

edit: möglicherweise verwurmtes attachment gelöscht
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#8

Re: Thread in die unendlichkeit...

  Alt 3. Sep 2003, 13:17
so , ich poste den execute code mal so :

Delphi-Quellcode:
procedure Tsynapse.update;
var in1,out1,in2,out2 : integer;
begin
in1 := input1^;
in2 := input2^;
if in1 > 0 then out1 := round( in1 * (100 / conductivity))
else out1:=0 ;
if in2 > 0 then out2 := round( in2 * (100 / conductivity))
else out2:=0 ;
if (in2 > 0) and (in1 > 0) then conductivity := conductivity+1;
if (conductivity > 4) and (in2 = 0) and (in1 = 0) then conductivity := conductivity-0.1;
output1^ := output1^ + out1;
output2^ := output2^ + out2;
end;

procedure Tsynapse.execute;
begin
while not Terminated do
update;
end;

procedure Tneuron.update;
begin
if input >= inputlimit then
begin
output := input;
send := true;
input:=0;
end else
begin
output := 0;
input:=0;
end;
if send = true then
begin
sendtimer := sendtimer +1;
if sendtimer = 5 then
 begin
 send := false;
 sendtimer := 0;
 end;
end else output := 0;
end;

procedure Tneuron.execute;
begin
while not Terminated do
update;
end;
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  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 03:25 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