
我做了個測驗小程式,在執行緒內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是字串泄露了嗎?請大神指點問題出在哪里?
uj5u.com熱心網友回復:
csdn怎沒人回復呀?帖子都沉了uj5u.com熱心網友回復:
不能讓帖子沉了呀,大家用過MemProof的請回答一下。我看你的圖上有多處提示,你說的那行提示跟別的也沒有區別呀。
編譯環境本身有泄露也是有可能的,我看你代碼也沒問題
uj5u.com熱心網友回復:

大神呢?
uj5u.com熱心網友回復:

我的帖子沉了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/98946.html
標籤:網絡通信/分布式開發
