Hallo CCRDude,
FreeOnTerminate ist schon klar, aber die Frage war etwas anders.
Funktioniert das evtl. nur, wenn der Thread mit einer Variable im Hauptprogramm "angemeldet" ist?
Es kann - und wird bestimmt auch - prinzipiell funktionieren. Aber denkbar wäre auch so eine (falsche) Einschränkung.
Mit der automatischen Freigabe der Threads ist das so eine Sache. Manchmal führt das tatsächlich zu einem Speicherleck. (Ich nehme an, immer dann, wenn man im Thread etwas createt hat und es im Thread.destroy nicht frei gibt - oder geben kann. Z. Bsp. bei SHFileOperation. Da scheint einiges angelegt zu werden und erst bei Beendigung oder Cancel wieder frei gegeben zu werden. Im Thread.destroy kommt man da nicht ran. Machst Du das im Thread - wie oben - wird zwar der Thread von Delphi freigegeben, nicht aber die von SHFileOperation angelegten Objecte - nehme ich an. FastMM4! Aber auch das scheint nicht ganz so einfach.)
Warum soll ich immer das ganze Threadobject mitschleppen, wenn ich doch eigentlich nur das
Handle brauche?
Allerdings bin ich momentan am Überlegen, ob eine TObjectList der Threads nicht vielleicht doch die bessere Lösung wäre.
Gruß
Mattze