AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) TThreadList leeren und alle Objekte freigeben?
Thema durchsuchen
Ansicht
Themen-Optionen

TThreadList leeren und alle Objekte freigeben?

Ein Thema von uups · begonnen am 7. Feb 2017 · letzter Beitrag vom 8. Feb 2017
 
uups

Registriert seit: 23. Aug 2004
68 Beiträge
 
#1

TThreadList leeren und alle Objekte freigeben?

  Alt 7. Feb 2017, 10:14
Hallo,

ich habe eine TThreadList, der pro Sekunde bis zu 300 Items hinzugefügt werden. Dementsprechend hoch kann auch die Zahl der Items in der Liste sein, wenn diese länger nicht geleert wird. Die Liste zu leeren sollte an sich kein großes Problem sein. Aber wie gebe ich dabei die Objekte frei, die in von Liste verwaltet werden?

Darf ich bei einer sehr langen Liste, die geleert werden muss, die Objekte in einer Schleife innerhalb des geloockten Bereichts freigeben?

Ich meine, bei einer so großen Zahl der neuen Objekte, die hinzufügt werden müssen, sollte die Liste nicht so lange blockiert werden, oder? Anderseits, sehe ich keine andere Möglichkeit, dies zu vermeiden, da ich auf die Objekte in der Liste sowieso erst zugreifen kann, wenn diese blockiert ist.

Wie würdet Ihr vorgehen? Was wäredie schnellste und perfomanteste Methode, eine TThreadList zu leeren und alle Objekte freizugeben?

So etwa habe ich mir das vorgestellt:

Delphi-Quellcode:
procedure TImmObjects.Clear;
var
  List: TList;
  i: integer;
begin
  List := TImmList.LockList;
  try
    for i := 0 to List.Count - 1 do
    begin
      if Assigned(List.Item[i]) then
      TImmObject(List.Item[i]).Free;
    end;
    List.Clear;
  finally
    TImmList.UnlockList;
  end;
end;
In diesem Fall bleibt die Liste über eine längere Zeit blockiert. Ob das so in Ordnung ist?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz