首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

设法阻塞全部线程时遇到的一个有关问题

2012-02-06 
设法阻塞全部线程时遇到的一个问题view类头文件中定义:private:CEvent*m_Event在构造函数中写入:m_Event

设法阻塞全部线程时遇到的一个问题
view类头文件中定义:
private:
CEvent*   m_Event;
在构造函数中写入:
m_Event   =   new   CEvent(false,true);(这样做的目的是为了接下来调用resetevent()函数,然后当所有线程函数调用lock()时就部会被阻塞。)
然后循环启动线程:
m_RobThread[i]=AfxBeginThread(RobRun,(LPVOID)pParam);(此处设一断点1)

(m_RobThread是我view类定义的一个二重指针用来接收AfxBeginThread返回的线程指针问题可能不在这里)
在该类的定义为静态成员函数的线程函数中调用:
View*   ViewPoint   =   (View*)pParam;
ViewPoint-> m_Event-> Lock();(此处设一断点2)
当调试走到断点2时,就报出unhandled   exception   in   .exe:0xC0000005:Access   Violation.
不知道怎么弄啊。

[解决办法]
pParam是什么?
m_RobThread[i]=AfxBeginThread(RobRun,(LPVOID)pParam);(此处设一断点1)

--

m_RobThread[i]=AfxBeginThread(RobRun,(LPVOID)this);(此处设一断点1)
[解决办法]
因该如楼上所说传递 this 指针吧

热点排行