Einzelnen Beitrag anzeigen

Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#1

Threads bleiben stehen nach Aktualisierung

  Alt 25. Mai 2007, 08:16
Hallo Leute!

Ich habe ein Problem! Ich habe eine Klasse geschrieben, die mehrere Threads verwaltet, diese Threads haben die Aufgabe, einen bestimmten Host anzupingen (Per IdIcmpClient) Das klappt auch alles. Die Ergebnisse werden in eine Containerklasse geschrieben, die eine TThreadlist kapselt.

In dieser Containerklasse gibt es jetzt die Methode UpdateListbox(SL: TStrings) Diese Methode wird zum Beispiel über einen Buttonklick ausgelöst (!!Extern!!)

Das updaten der Listbox funktioniert, aber danach bleiben die Threads einfach stehen. Der Threadstatus ist aber weiterhin "Ausführbar". Der gesetzte Breakpoint in der "While-not-Terminated" schleife wird nicht mehr erreicht.

Die UpdateListbox Prozedur sieht so aus:
Delphi-Quellcode:
procedure TPingResultList.UpdateListbox(SL: TStrings);
var i: integer;
begin
  SL.Clear;
  if FPingResults.LockList.Count > 0
    then
      for i := 0 to FPingResults.LockList.Count - 1 do
        begin
          SL.Add(TPingResult(FPingResults.LockList.Items[i]).StringResult)
        end;
end;
In jedem Thread befindet sich ein Pointer auf diese Liste, damit Einträge hinzugeügt werden können.

Woran liegt das? Wie kann ich das umgehen?

Gruß und danke schonmal

Richard
Richard Mahr
  Mit Zitat antworten Zitat