Ali*_*aji 2 delphi com multithreading
我在Delphi程序的线程内使用TIdHttp和TXMLDocument。现在我想知道:
TIdHTTP 没有COM依赖项。
TXMLDocument 可以依赖于COM。在Windows上,它是Microsoft MSXML ActiveX组件的包装,该组件使用COM。如果使用其他DOM供应商(例如,XE7的OmniXML),则没有COM依赖性。您可以通过设置DefaultDOMVendor全局变量来控制它。
CoInitialize并且CoUninitialize必须在线程上下文中调用一次。通常在的Execute()方法中TThread,如本示例流程所示:
procedure TMyThread.Execute;
begin
try
CoInitialize(nil);
try
while not Terminated do
begin
DoWorkThatMayUseCOM;
end;
finally
CoUninitialize();
end;
except
on E: Exception do
// log exception
Log(E);
end;
end;
Run Code Online (Sandbox Code Playgroud)