A类有个线程函数正在执行,我通过主程序eve这个handle变量来控制线程是否挂起,在A类的其他消息响应函数里通过SetEvent和ResetEvent来控制线程的挂起和恢复很正常。
但如果在B类里某个函数里通过同样的操作就无法实现,B类函数部分代码如下,我先挂起线程,然后执行B类的另外一个线程函数,执行完毕之后再恢复:
ResetEvent(app->eve);//挂起循环线程
LPVOID lp = (LPVOID)&m_list;
AfxBeginThread(GetList,lp);
SetEvent(app->eve);
但通过调试发现A类这个线程函数并没有被挂起,为什么?
但如果在B类里某个函数里通过同样的操作就无法实现,B类函数部分代码如下,我先挂起线程,然后执行B类的另外一个线程函数,执行完毕之后再恢复:
ResetEvent(app->eve);//挂起循环线程
LPVOID lp = (LPVOID)&m_list;
AfxBeginThread(GetList,lp);
SetEvent(app->eve);
但通过调试发现A类这个线程函数并没有被挂起,为什么?
解决方案 »
- OFN_HIDEREADONLY 这有什么功能吗?
- VC6下fread函数只读取一部分数据?
- 还有必要使用TCHAR么?
- 端口绑定
- InitReport函数的问题
- xtreme toolkit怎么用?
- 怎么样判断一个str是否在ComboBox的项目里面?
- 一个面试题,不知道确切答案,大家给解释一下
- Unhandle exception in 文件名.exe(Mfc42d.dll):0xC0000005:Access Violation
- 请问如何改变桌面大小,其他程序都认为桌面的大小是所改的尺寸
- 为什么我的progress control的样式很古老?
- sqlite在mfc中插入数据时弹出错误框“sqlite misuse”
B类需要获得A类的eve事件,或者直接调用A来的接口来set或reset事件
在中间插几条语句,然后再reset事件呢?