In Delphi gibt es eine spezialisierte TList dafür.
TThreadList
Danke für den Tipp!
Habe es nun eingebaut, jedoch geht es in einem Thread - im anderen nicht!?
Ich mache es so in den Threads:
Delphi-Quellcode:
var
List : TList;
i : Integer;
begin
List := ALL_Names.Locklist;
for i := 0 to List.Count - 1 do
begin
//do stuff with data
end;
ALL_Names.UnlockList;
Es bleibt beim Locklist stehen.
Der einzige Unerschied ist, dass es im dem Thread wo es nicht geht in der Thread.Execute ausgeführt wird.
Im Thread wo es geht wird es per ein OnUDPRead Thread ausgeführt. Also der Thread hat einen UDP-Server mit einer OnUDPRead vom Thread. Da geht es ohne Probleme.
Kann das LockList nicht im Execute vom Thread ausgeführt werden weil der Thread dann stehen bleibt und das Locklist nicht durchgeführt werden kann??
Ein zusätzliches ALL_Names.UnlockList davor bringt auch nichts.