奇怪!请教高手,多线程与ADO访问数据库的问题。
sxbyl 2000-10-28 11:37:00 问题是这样的,我在写一个服务器程序,有一个功能是将一些数据包中的数据解到数据库中,在这里我用了多先程,一个线程解一个包,线程最大数设为5,但有时会出问题,加入调试信息后发现是停到一个RecordSet的Open上,
ptrRds->PutRefActiveConnection(pWnd->m_ptrConn);
//此处有TRACE语句
hr=ptrRds->Open((_variant_t)bstrQuery,vNull, adOpenDynamic,adLockOptimistic,adCmdText);
我用SQL Server Profiler查看,发现这个Open根本没有得到执行,而且也没有死锁发生,程序也不占用CPU资源,只是没有任何响应。这个问题的发生也比较随机,有时解几个就死了,有时解几十个都没问题。
初始化我用的是
CoInitializeEx(NULL,COINIT_MULTITHREADED);
如果我把最大线程数设为1,则没问题。