Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#1

TThread: Wie frei geben? Bekomme beim Beenden Memory Leak

  Alt 3. Mai 2020, 15:28
Hallo zusammen,

beim starten meines Programms auf einem Client prüfe ich ob die lokale Hilfedatei
a) vorhanden ist
b) die aktuelle Version hat (auf einem Server liegt die aktuelle Hilfedatei)

Da das im Hintergrund laufen soll, habe ich gedacht das in einen eigenen Thread auszuführen, einmalig beim Start.
Funktioniert auch, außer dass nun beim Beenden des Programms ein Memory Leak auftaucht:
Zitat:
---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:

53 - 60 bytes: my_HelpFileThread x 1

---------------------------
OK
---------------------------
Der Thread ist eigentlich super einfach:
Delphi-Quellcode:
UNIT u_HelpFileThread;

INTERFACE

USES
  System.Classes, System.IOUtils, System.SysUtils, WinApi.Windows;

TYPE
  my_HelpFileThread = CLASS( TThread )
  PRIVATE
    { Private-Deklarationen }
  VAR
  ls_FileNameAndPath_local, ls_FileNameAndPath_Server: PWideChar;
  PROTECTED
    PROCEDURE Execute; OVERRIDE;

  END;

IMPLEMENTATION


PROCEDURE my_HelpFileThread.Execute;
BEGIN
  TRY
  // hier meine Abarbeitung der Aufgabe
  FINALLY
    Terminate;
  END;
END;
In der Hauptform im OnShow() habe ich folgendes stehen:
Delphi-Quellcode:
...
  u_HelpFileThread.my_HelpFileThread.Create;
...
Ich finde nun keine Möglichkeit meine Thread Klasse freizugeben mit Free oder ähnlichem.

Wie muss man das machen?

Vielen Dank vorab!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen ( 3. Mai 2020 um 22:14 Uhr)
  Mit Zitat antworten Zitat