Das hätte mich jetzt aber auch erschreckt

.
Aber hätte ja sein können das sich da wieder irgendwas in der internen Speicherverwaltung anders verhält.
Vielen Dank!
Problem, wir sind von der eigentlichen Frage etwas abgekommen.
Der Übersichtlichkeit wegen würde ich Fragen und Antworten zum Thema Array und Datenübergabe lieber hier fortführen : http://www.lazarusforum.de/viewtopic.php?f=10&t=8639
Sonst haben wir nachher alles doppelt und dreifach
Also zurück zur eigentlichen Frage:
Code: Alles auswählen
constructor TMyThread.Create();
begin
inherited Create(True);
FreeOnTerminate := True;
Start;
end;
Hab ich jetzt so wie anfangs von Socke vorgeschlagen umgesetzt, so sollte ich auf der sicheren Seite sein oder?
Mal noch eine Frage zu dieser Stelle , bin mir da unsicher:
Code: Alles auswählen
for tid := 0 to tcp - 1 do if(Assigned(arr[tid])) and not(arr[tid].Terminated) then Sleep(1);
for tid := 0 to tcp - 1 do if(Assigned(arr[tid])) then FreeAndNil(arr[tid]);
Wann und wo wird vom Thread Terminated gesetzt, es kann sein das ein Thread mal länger z.B. 50 oder 100 ms braucht.
Besteht hier bei diesem Aufbau die Gefahr das der genilt wird während er noch läuft?
Edit : Problem gelöst, mein Aufbau war generell ungünstig. Danke
