Die Werte der For-Schleife sind
immmer vorberchnet, da Delphi den Endwert zwischenspeichert.
15ms ... wenn du das mit GetTickCount oder Dregleichen gemessen hast, dann ist das eher ein Messfehler.
TTask?
Warum nimmst du nicht die neue "coole" threaded For-Schleife?
Bezüglich des Threads:
Wenn die FList und deren Objekte nirgendwo dran hängen, also wie z.B. Owner/Parent-Bezieungen zu deiner Basisklasse (TMoepManager). (auch bei TComponent oder Dregleichen aufpassen, daß es nirgendwo weitere globale Listen/Registrierungspunkte gibt)
- eventuelle Beziehungen zur Basisklasse auflösen
- FList mit einer Temp-Variable (nil) tauschen
oder alternativ nur den Inhalt von FList in eine andere Liste übertragen
- nun die ganze Liste an den Thread/Task übergeben (der gibt das frei)
- fertig und sich nicht weiter drum kümmern
PS: Im Gegenzug, kannst du dann auch das erstellen auch in Threads/Tasks machen, oder die neue Liste schonmal vorher erstellen und dann ebenso austauschen.