Forum: Programmieren allgemein
by Aviator,
13. Sep 2015
Ist ja auch klar warum. Im Constructor setzt du FreeOnTerminate auf True (hatte ich übersehen). Was passiert, wenn der Thread fertig abgearbeitet wurde und Terminated auf true gesetzt wird? Genau, der Thread wird freigegeben. Was passiert dann. Du greifst auf einen nicht initialisierten Speicherbereich zu. Infolgedessen schmiert dein Programm natürlich auch ab. Eigentlich sollte (wenn ich jetzt...
Forum: Programmieren allgemein
by Aviator,
13. Sep 2015
Da ein Thread, welcher die Execute Methode vollständig durchlaufen hat, sich selbst "terminiert" ist es schwachsinnig, auf die Beendigung des Threads durch eine Boolean Variable zu warten und dann Terminate aufzurufen. Wenn du das unbedingt machen willst, dann prüfe auf Thread.Terminated. Viel eher solltest du an dieser Stelle LCopyThread.Free aufrufen um den Speicher wieder freizugeben. Oder...