我做了个测试小程序,在线程内While循环向IdUDPServer发送命令,发送间隔1s,每次循环会在界面上label1.caption显示循环次数,共运行10万次
运行了17000多次时MemProof提示有18个泄露 代码定位第一行是LStrClr(如图)
我的代码如下:
procedure TTestThreadUDPSend.Execute;
var
  i: Integer;
  FComCtrl: TIdUDPServer; //通信控件
begin
  FComCtrl := TIdUDPServer.Create(nil);
  if FComCtrl.Active then FComCtrl.Active := False;
  FComCtrl.DefaultPort := 4004;
  if not FComCtrl.Active then FComCtrl.Active := True;  
  while i < 100000 do begin
    Inc(i);
    FI := i;    
    Synchronize(shwI);
    FComCtrl.Send('192.168.0.34',4004, '130300C8000D0683');    Sleep(1000);
  end;
  FComCtrl.Free;
end;procedure TTestThreadUDPSend.shwI;
begin
  Form1.Label1.Caption := '';
  Form1.Label1.Caption := IntToStr(FI);
end;procedure TForm1.Button3Click(Sender: TObject);
begin
  TestThreadUDPSend := TTestThreadUDPSend.Create(true);
  TestThreadUDPSend.FreeOnTerminate := True;
  TestThreadUDPSend.Resume;
end;望大神指点,LStrClr是字符串泄露了吗?请大神指点问题出在哪里?