Forum: Object-Pascal / Delphi-Language
Delphi
by Captnemo,
23. Jun 2014
Mit OwnObject:=False funktionierts. FreeOnTerminate ist True.
Jetzt werden die Objecte (Thread) also freigegen, wenn die Liste freigegeben werden.
Aber eigentlich müßte es ja auch anders gehen.
Ist denn das mit Waitforsingleobject so korrekt? Was ist eigentlich der Rückgabewert von Waitforsingleobject? In meinem Fall habe ich immer 0 zurück bekommen.
Das mit 1000 Milisekunden ist erst...
Forum: Object-Pascal / Delphi-Language
Delphi
by Captnemo,
23. Jun 2014
Hi, ich muß diese Thema noch mal aufwärmen, da ich da noch ein paar Probleme habe.
Also ich erzeuge mir eine TThreadList, die ich beim Beenden des MainThread entfernen möchte.
procedure Tfrm_main.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
I: Integer;
r: Cardinal;
begin
for I := RS232ThreadList.Count-1 downto 0 do
Forum: Object-Pascal / Delphi-Language
Delphi
by Captnemo,
7. Aug 2013
Also darüber brauche ich ganz sicher keine Sorgen machen. Zum einen werde niemals mehr als 12 Geräte angeschlossen (das ist in diesem Anwendungsfall mal absolut sicher), und zum anderen liefern die Geräte nur in Intervallen von 10 Sekunden Daten, evtl. sogar mit viel größeren Abständen.
Dem zur Folge für meine Zwecke völlig okay. Ich hab's grad mal mit 20 Threads auf einem 1 Prozessorsystem...
Forum: Object-Pascal / Delphi-Language
Delphi
by Captnemo,
7. Aug 2013
Genau genommen geht es darum, seriell angeschlossene Geräte abzufragen. Wieviele angeschlossen werde, dass wird vom User eingestellt. Es können also 3 aber auch 10 sein. Ich selbst begrenze die Anzahl nicht.
Forum: Object-Pascal / Delphi-Language
Delphi
by Captnemo,
7. Aug 2013
Was für eine Begrenzung?
Ich will nur wissen, wie viele Thread laufen, damit ich die bei Programmende sauber beenden kann.
Forum: Object-Pascal / Delphi-Language
Delphi
by Captnemo,
7. Aug 2013
Ah, cool. Danke für deine schnelle Hilfe.
Forum: Object-Pascal / Delphi-Language
Delphi
by Captnemo,
7. Aug 2013
Ich schreibe gerade an einem Programm, in dem eine vom Benutzer festgelegte Anzahl an Threads starten sollen. Da ich bei Programmende alles schön wieder aufräumen will, muß ich ja dafür sorgen, dass alle Threads brav beendet sind.
Kann ich dafür die TThreadList verwenden?
Funktioniert das ähnlich wie eine TObjectList?
Also TObject->TObjectList und TThread->TThreadList?
Gibt's irgendwo...