设法阻塞全部线程时遇到的一个问题
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 指针吧