Forum: Object-Pascal / Delphi-Language
Delphi
by haentschman,
11. Jan 2011
Kurze Rückmeldung... :hi:
mit Unterstützung von DeddyH sind wir auf folgendes Lösungsprinzip gekommen.
1. eine Liste für die Threads (hier als generische Liste unter XE)
TMyCustomThreadList = TList<TLoader>; // TLoader = class TThread
TMyThreadList = class(TCustomThreadList)
strict private
Forum: Object-Pascal / Delphi-Language
Delphi
by haentschman,
10. Jan 2011
macht keinen Unterschied...
Kommando zurück:
Beitrag 14 ist Quatsch.
- in der Schleife stand to statt downto
- Das FThreadList.Delete stand außerhalb der Schleife.
Fazit: Das war wirklich eine Endlosschleife.
mal ein Auszug aus dem Ereignisprotokoll:
Forum: Object-Pascal / Delphi-Language
Delphi
by haentschman,
10. Jan 2011
ok... diese Variante hatte ich wie gesgt schon. Allerdings nicht mit Sleep.
Ich geh dann mal zum probieren....bis gleich.
Soooo....
destructor Klasse1.Destroy; // Kommt auf das gleiche raus wie CloseQuery
var I: Integer;
begin
while not (FThreadList.Count = 0) do
Forum: Object-Pascal / Delphi-Language
Delphi
by haentschman,
10. Jan 2011
Danke für deine Mühe...
for i:= ThreadList.count -1 downto 0 do
begin
(ThreadList as TTestThread).terminate;
while not (ThreadList as TTestThread).Terminated do
begin
sleep(200);
end;
Forum: Object-Pascal / Delphi-Language
Delphi
by haentschman,
10. Jan 2011
...das dumme ist nur, daß die Threads stehen bleiben wenn du dich im OnClose OnCloseQuery befindest. (warum auch immer das so ist... wenn das einer logisch erklären kann, bitte) Das war ja mein erster Ansatz... Warten bis die Liste leer ist. Im OnClose / OnCloseQuery kannst du warten bis du schwarz wirst :zwinker:
...aber Danke für deine Hilfe. :P
Nachtrag: Nur mit WaitFor bringt man den...
Forum: Object-Pascal / Delphi-Language
Delphi
by haentschman,
10. Jan 2011
Guten Morgen alle... :hi:
am Wochenende hab ich mich mal mit Threads intensiv beschäftigt. Zuerst hab ich die OmniThreadLibary ausprobiert. So viele MemoryLeaks (aus der Libary) hab ich in meinem Leben noch nicht gesehen. Danach hab ich TThread versucht.
Nach gefühlten hunderten Forenbeiträgen, Hilfeseiten und ausprobieren dessen habe ich das Gefühl die Katze beißt sich in den Schwanz......