多线程循环里内存不断增加
每循环一轮,内存使用大概增加几十k,还有那些资源没有释放?还是方法问题?请教
while isrun^ do//isrun是一个pboolean,用来控制线程循环 begin try perl.Subject:=surl.Get(suri);//perl是正则表达控件,在前面create的,在线程destruct时候销毁了。 perl.RegEx:=srule; perl.Options:=[preCaseLess]; while perl.MatchAgain do begin tmp.Add(perl.SubExpressions[1]);//tmp是tstrings,在循环前创建,在循环结束后销毁了。现在就是怀疑乇鹗tstrings出的问题 tmp.Add(perl.SubExpressions[2]); end; except end; sLog.Add(tmp.Strings[0] + '#' + tmp.Strings[1]);//FLog消息,详见:http://blog.itpub.net/resource/4034/LogUtils.pas tmp.Clear; for i:=0 to 100 do//这里只是想快速响应主窗体发送的退出线程指令 begin Sleep(stime * 10); if not isrun^ then begin logout:=True; Break; end; end; if logout then Break; end;