Memory Leak ???
Jeg har en tråd som ser ud på følgende måde:unit tNWPoll;
interface
uses
Classes, Dialogs, Controls, SysUtils, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient;
type
TNWPollController = class (TThread)
private
protected
procedure Execute; override;
public
ClientSocket : TIdTCPClient;
IPNo : String;
Port : Integer;
Constructor Create;
Destructor Destroy; override;
end;
implementation
constructor TNWPollController.Create;
begin
inherited Create(true);
FreeOnTerminate := True;
end;
destructor TNWPollController.Destroy;
begin
inherited;
end;
procedure TNWPollController.execute;
begin
inherited;
ClientSocket := TIdTCPClient.Create(nil);
ClientSocket.Host := IPNo;
ClientSocket.Port := Port;
try
ClientSocket.Connect;
except
ClientSocket.Free;
Exit;
end;
sleep(100);
ClientSocket.Disconnect;
ClientSocket.Free;
end;
end.
Hvis jeg starter tråden f.eks 1. gang i sekundet på en timer kan jeg se at hukommelsesforbruget stiger lige så langsomt i windows jobliste, særligt hvis jeg forsøger at connecte til en IPadr/Port som er optaget.
Hvorfor bliver der ikke freet ordentligt når freeOnTerminate er sat til true ?
