Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Thread (Memory) wird nicht freigegeben

  Alt 31. Jul 2006, 17:40
Hi,
ich bin mir ehrlich gesagt nicht 100%ig sicher, aber kann es sein, dass FreeOnTerminate bei dir noch true ist? Denke das war bei Threads standardmässig so. Das führt dazu, dass wenn der Thread beendet wurde, der auch automatisch seine Methode free aufruft. Diese gibt natürlich dann den Speicher einfach frei, was wiederum zu Problemen führen kann. Wenn du hier einfach mal FreeOnTerminate false setzt und es testest (wie gesagt bin mir nicht ganz sicher!).

Eine andere Sache ist dann noch, dass es schwer zu sagen ist, wo du ein Memoryleak hast, wenn du nicht zeigst an welchen Stellen der Speicher belegt wird.
Du hast ja eine Variable, die eine Instanz dieses TThread speichert. Wenn du aber versehentlich eine Zuweisung vornimmst bevor die aktuelle Instanz frei gegeben wurde, hättest du (wenn FreeOnTerminate false ist) ebenfalls eine Mögliche Quelle für eine Leak.

Gruß Der Unwissende
  Mit Zitat antworten Zitat