delphi 多线程程序中内存不断上升的问题!

我这个是循环程序,为什么内存不停的上升呢?有没有好的办法??窗体代码:MyThread:=a121.Create(false);memo1.Lines.Add(intto... 我这个是循环程序,为什么内存不停的上升呢?有没有好的办法??
窗体代码:
MyThread:=a121.Create(false);
memo1.Lines.Add(inttostr(MyThread.ThreadID)) ;
MyThread.Resume;
多线程代码:
procedure a121.Execute;
var
i:integer;
HttpCli1: THttpCli;
begin
HttpCli1:= THttpCli.Create(nil);
HttpCli1.RequestVer:='1.1';
for i:=0 to 500 do
begin
C:=i;

HttpCli1.URL:='http://www.qq.com/' ;
HttpCli1.RcvdStream:=TMemoryStream.Create;

try
HttpCli1.Get;
except

end;
HttpCli1.RcvdStream.Seek(0,0);
//HttpCli1.RcvdStream.Free;
setlength(httpcode,HttpCli1.RcvdStream.size);
HttpCli1.RcvdStream.Read(httpcode[1],length(httpcode));
sleep(100);
end;
end;
展开
 我来答
百度网友ba90a0f
2012-03-28 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:61.3万
展开全部
事实上,你在循环内创建了500次HttpCli1.RcvdStream:=TMemoryStream.Create;

HttpCli1:= THttpCli.Create(nil); 也需要释放。
追问
能不能彻底的释放完?我怎么感觉内存还是在上升呢?呵呵
追答
如果你在每个对象使用完之后及时释放,内存不会无故上升,HttpCli1.RcvdStream.Read(httpcode[1],length(httpcode));在工作,也是需要内存开销的。属于正常。
jyyyjy
2012-03-21 · 超过17用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:50.3万
展开全部
HttpCli1.RcvdStream:=TMemoryStream.Create;

应该在循环前创建,循环后销毁,你这是等待50秒吗?貌似很怪异哦
追问
我这个程序是个循环程序不能让它占用太多CPU呀!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友748312359
2012-03-19 · 超过25用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:108万
展开全部
HttpCli1:= THttpCli.Create(nil);

创建了但是没有销毁。
追问
销毁了内存还会不会上升呢?
追答
销毁了自然不会出现那样的问题。
你试试看嘛,只是把注释掉的放在循环外边。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式