因为要执行大数据量查询及插入操作,我将数据库部分放在线程里,使得用户界面可以及时反映当前操作情况。在线程里使用互斥量控制使得每次只有一个线程运行。但是我发现执行完第一个线程后就出现异常,并且catch捕获不到。
我在每个线程里单独定义变量 并用CreateInstance初始化也不行。请大虾分析一下原因。
我在每个线程里单独定义变量 并用CreateInstance初始化也不行。请大虾分析一下原因。
解决方案 »
- Win32窗口按下Alt+Enter键后会有响声,怎么屏蔽这个声音?
- 【MFC 】无法添加消息?
- CrazyAzreal过来接分
- 如何实现类似xslt里面的格式转换
- 请问怎么在程序刚开始运行时就模拟按住shift键,在程序结束之前释放掉shift键。给点代码谢谢!
- 高手请进:如何知道打印机支持彩色打印?
- 用一个.bmp文件作为对话框的背景,想用BitBlt,其中的pSrcDC指针怎样设置?
- 如果使用socket的http协议请求web服务器(post方式)
- 如何在单文档客户区画一条移动的线
- 关于改变菜单的问题
- 调查一下:【什么样的程序员才是一个能够找到工作的程序员】
- 为啥VC不认识vector< string >?
to wj_xiazi(瞎子) ( ):如果放在进程里,一旦切换到别的界面,就别想再切换回来了。
_RecordsetPtr MySet_SRC;
_RecordsetPtr MySet_TAR;
_ConnectionPtr g_ptrDatabase_SRC;
_ConnectionPtr g_ptrDatabase_TAR; WaitForSingleObject(Mutex_DB,INFINITE);
try
{
::CoInitialize(NULL);
g_ptrDatabase_SRC.CreateInstance(__uuidof(Connection));
g_ptrDatabase_TAR.CreateInstance(__uuidof(Connection));
MySet_SRC.CreateInstance(__uuidof(Recordset));
MySet_TAR.CreateInstance(__uuidof(Recordset));
g_ptrDatabase_SRC->Open(_bstr_t(sConnSRC),"","",adModeUnknown);
g_ptrDatabase_TAR->Open(_bstr_t(sConnTAR),"","",adModeUnknown); .......
::CoUninitialize();
ReleaseMutex(Mutex_DB); }
catch(_com_error &e)
{.....}
注意事项请查看msdn