A类有个线程函数正在执行,我通过主程序eve这个handle变量来控制线程是否挂起,在A类的其他消息响应函数里通过SetEvent和ResetEvent来控制线程的挂起和恢复很正常。
但如果在B类里某个函数里通过同样的操作就无法实现,B类函数部分代码如下,我先挂起线程,然后执行B类的另外一个线程函数,执行完毕之后再恢复:
ResetEvent(app->eve);//挂起循环线程
LPVOID lp = (LPVOID)&m_list;
AfxBeginThread(GetList,lp);
SetEvent(app->eve);
但通过调试发现A类这个线程函数并没有被挂起,为什么?

解决方案 »

  1.   

    首先楼主这个操作不是挂起线程,而是在线程里等待某种事件,再决定怎样运行
    B类需要获得A类的eve事件,或者直接调用A来的接口来set或reset事件
      

  2.   

    差不多就相当于是挂起的性质了,这里肯定已经获取了eve事件了,经过测试,发现在函数里不开启另外一个工作线程,则挂起恢复正常,开启了后就不正常了。
      

  3.   

    应该没关系啊
    在中间插几条语句,然后再reset事件呢?