Einzelnen Beitrag anzeigen

CGEu

Registriert seit: 20. Mai 2010
Ort: Bayern
14 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Speicher von abgeleiteter TThread Klasse freigeben

  Alt 17. Aug 2010, 23:20
Soll also heißen, solange ich nur Strings und Integers in meiner abgeleiteten Klasse definiere, muss ich diese nicht explizit freigeben??

Stellt sich mir die Frage, wann das Destroy der abgeleitenden Klasse aufgerufen wird. Angenommen ich hab außer Strings noch andere Objekte in meiner Thread Klasse definiert.
Delphi-Quellcode:
MyThread = class(TThread)
  private
    ...
    FList : TStringList;
  protected
    procedure Execute; override;
  public
    constructor Create;
    destructor Destroy; override;

    ...
  end;

  constructor TMyThread.Create;
  begin
    inherited Create(True);
    FreeOnTerminate := True;
    FList := TStringList.Create;
  end;

  destructor TMyThread.Destroy;
  begin
    FList.Free;
    inherited;
  end;
Der Thread wird zwar freigegeben, aber ohne MyThread.Free bleibt die StringList im Speicher.
Da muss ich jetzt wohl oder übel in meiner Thread Klasse ein OnTerminate einbauen?!

Geändert von mkinzler (18. Aug 2010 um 06:26 Uhr) Grund: Code-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat