CoHTMLDocument

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); 

再次测试  内存没有增加  

不对之处 请指正 
 
 
 
 
原文地址:https://www.cnblogs.com/CodeGear/p/5076784.html