怪我没把问题讲清楚,大侠们都在考虑使得上面的代码有用.
我有意思是不用考虑上面代码的可用性.
在我这边调试时,上面的其它代码不变,把线程写成包含以下语句就会死掉
OleCheck(CoInitialize(nil));
try
OleCheck(CoGetInterfaceAndReleaseStream(IStream(FStream), IID_IAppServer,
Appserver));
FNewData := AppServer.AS_GetRecords (FCDS.ProviderName,
-1,RecsOut,MetaDataOption,'',Params,OwnerData);
finally
CoUninitialize;
我试过了,单单就CoInitialize和CoUninitialize就不会,可是在它们中间再加上CoGetInterfaceAndReleaseStream就会不行了.
查了很多资料都没说COM库在线程中使用要注意些什么,实在头痛.
请大侠们帮帮忙,如果你们在调试过程中不会死锁(注意,不要改主线程里的东西), 那我就得查查我这边的Delphi是否有问题了.[
]