Entwickler-Ecke
Algorithmen, Optimierung und Assembler - TThread-2x resume geht nicht
bbfan - Fr 20.05.05 13:29
Titel: TThread-2x resume geht nicht
Hallo!
Ich habe folgendes Problem:
Ich habe eine bestimmte Anzahl von TThread Objects erzeugt.
In einem TTimer starte ich jetzt die TThreads mit "resume".
Wir der Timer das 2. mal durchlaufen, greift "resume" nicht mehr.
Warum?
Viele Grüße,
BBFAN
Alstar - Fr 20.05.05 13:32
Reume greift afaik nur, wenn der Thread mit TThread.Suspend pausiert wird. Ist der Thread am Ende angekommen, wird er Terminiert. Ein Resume kann dann garnicht mehr ausgeführt werden, da der Thread ja "weg" ist.
Alstar
bbfan - Fr 20.05.05 13:41
sowas habe ich mir auch schon gedacht.
Aber wenn ich vorher sage
Quelltext
1:
| thread.suspended:=false |
und dann resume, geht es auch nicht.
Wie kann ich es denn schaffen ein und den selben TThread mehrmals durchlaufen zulaufen in abhängigkei eines timers.
So dass, alle 3min (je timer einstellung) der thread gestartet wird.
Alstar - Fr 20.05.05 13:47
ist imho eine read-only-property, sodass es nichts bringt hier einen Wert zuzuweisen.
und
sind beides Gegenstücke. Resume setzt ein Thread fort, der mit Suspend angehalten wurde. Ich denke, dass dir nichts anderes übrig bleiben wird im Timer zu überprüfen, ob das Thread-Objekt noch existiert und falls nicht es wieder neu zu erzeugen.
Alstar
bbfan - Fr 20.05.05 13:52
ich habe ähnliches probiert:
im timer wird das TThread object mit "free" und "TerminateThread(t_id,0)" gestoppt.
und danach mit create(true) neu erzeugt.
Funktioniert soweid auch. Doch dann läuft mein Speicher Stück für Stück voll. Obwohl ich free benutze.
Alstar - Fr 20.05.05 13:58
Probier das TThread-Objekt mit
Delphi-Quelltext
1: 2: 3:
| Thread := TThread.Create(True); Thread.FreeOnTerminate := True; Thread.Resume; |
zu erzeugen (oder so ähnlich). Dann wird es automatisch nach Terminierung freigegeben.
Alstar
bbfan - Fr 20.05.05 14:02
ok. habe ich ausprobiert.
Funktioniert zwar, aber speicher läuft mit jeder timer-umrundung immer noch voll.
Alstar - Fr 20.05.05 14:04
Bist du sicher, dass die Variablen wirklich bei jedem Timer-Event freigegeben sind?
bbfan - Fr 20.05.05 14:06
ja. ganz sicher.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!