Hallo, ich benutze die Unit heaptrc.pas über die Projekteinstellungen, um Speicherlecks zu finden. In meiner Demo habe ich eine Form1 mit einem Button1. Wenn ich den Thread laufen lasse, kommt beim Beenden des Programms der Hinweis..
Zitat: |
Heap dump by heaptrc unit
653 memory blocks allocated: ...
653 memory blocks freed: ...
0 unfreed memory blocks:0
True heap size: 655360
True free heap: 655248
Should be: 655360
|
Beende ich das Programm ohne den Thread laufen zu lassen kommt in den letzten beiden Zeilen folgendes:
Zitat: |
True heap size 655360 (112 used in System startup)
True free heap: 655248
|
Ich verstehe das "Should be..." nicht. Hat das eine Bedeutung?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| type TMyThread = class (TThread) protected procedure Execute; override; public constructor Create; destructor Destroy; override; end; ...
Var Form1: TForm1 MyThread:TMyThread;
implementation
procedure TForm1.Button1Click(Sender: TObject); begin MyThread:=TMyThread.Create; MyThread.Start; end;
Constructor TMyThread.Create; begin FreeOnTerminate:=True; inherited Create(True); end;
Destructor TMyThread.Destroy; begin inherited Destroy; end;
Procedure TMyThread.Execute; begin end; |
Ich nutze Lazarus 1.4.2.