delphi 7 做多线程程序,内存不断增加,怎么解决?

typeTmythread=class(TThread)private{Privatedeclarations}protectedprocedureExecute;ove... type
Tmythread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;

procedure Tmythread.Execute;
var
s1,s2,ReadStr,sendstr:string; //ReadStr,
j,i,m,n:integer;
begin
readstr:=ReadS;
ReadS:='';
FreeOnTerminate:=true;
EnterCriticalSection(cs);
try
while trim(ReadStr)<>'' do
begin
i:=length(ReadStr);
s1:=leftstr(ReadStr,1);
j:=pos(';',ReadStr);
if (j>0) then
begin

s2:=leftstr(ReadStr,j);
case TypeList.IndexOf(s1) of
0:begin
Frm_ISMain.ReadSearch(s2);
end;
1:begin
//Frm_ISMain.ReadData(s2);
end;
2:begin
//Frm_ISMain.PowerChange(s2);
end;
else
break;
end;//case
if j=i then
ReadStr:=''
else if j<i then
ReadStr:=Rightstr(ReadStr,i-j);
end
else
break; //if
end; //while
Finally
LeaveCriticalSection(CS);
end;
end;
展开
 我来答
kcxnvbdbd
2015-04-02 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:614万
展开全部
内存泄露是因为有对象被创建或者内存被申请等,最终没有被释放,才造成内存被消耗,从上面代码看不出
孩旧神妖0p
2015-03-25 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:73.4万
展开全部
改线程为动态链接库试试!
追问
把多线程改成函数,内存就不曾加了,这是怎么回事
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LookRound07
2018-02-25
知道答主
回答量:4
采纳率:0%
帮助的人:3839
展开全部
用freeandnil(),不用free试一试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式