http://blog.csdn.net/dlwxn/article/details/2860329
http://www.itnose.net/detail/120267.html
不知道是 线程内代码造成的内存泄露还是反复创建线程造成的
线程里 用到了 以下代码
function THtmlThreade.HtmlToText(HtmlText: WideString): WideString; var V: OleVariant; Document: IHTMLDocument2; begin Result := HtmlText; if HtmlText = '' then Exit; CoInitialize(nil); Document := CoHTMLDocument.Create as IHtmlDocument2; try V := VarArrayCreate([0, 0], varVariant); V[0] := HtmlText; Document.Write(PSafeArray(TVarData(v).VArray)); Document.Close; Result := Trim(Document.body.outerText); finally Document := nil; CoUninitialize; end; end;
好像v没有清除?
貌似 自己搞定了 线程里用到com 一定要自己手动释放
initialization
OleInitialize(nil);
finalization
OleUninitialize;
另外要 用 CoInitializeEx(nil,COINIT_MULTITHREADED); 而不是 CoInitialize(nil);
再次测试 内存没有增加
不对之处 请指正
initialization
OleInitialize(nil);
finalization
OleUninitialize;
另外要 用 CoInitializeEx(nil,COINIT_MULTITHREADED); 而不是 CoInitialize(nil);
再次测试 内存没有增加
不对之处 请指正
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步