关于网友提出的“ 请教MFC关于线程的问题”问题疑问,本网通过在网上对“ 请教MFC关于线程的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 请教MFC关于线程的问题
描述: 程序大致结构如下:
//Test.h
……
CTestApp theAPP;
DMapInfo mapinfo;
……
BOOL CTestApp::InitInstance()
{
……
mapinfo.Do(操作A);
::AfxBeginThread(线程名,NULL,THREAD_PRIORITY_NORMAL,0,0,NULL);
……
}
UINT CTestApp::线程名(LPVOID lpParam)
{
mapinfo.Do(操作A);
return 0;
}
这里在主线程内部的代码可以正确执行,但是子线程内部的代码不能。
mapinfo.Do()调用了Invokehelper方法,在主线程中工作正常,但是在子线程中会抛出异常DISP_E_EXCEPTION(显示异常),不知道这应该是什么情况呢?网上有很多说法,比如子线程初始化,主线程要传参数,两个部分要加锁等等,似乎都没太大效果。这里请教各位大神:上述结构应当如何修改才能正常运行?感激不尽。
另:子线程已经成功启动了,使用另一个子线程程序进行过测试的。
以上介绍了“ 请教MFC关于线程的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3328155.html