关于多线程的等待函数~~~ 我用AfxBeginThread()开了多线程,打算等每个线程都执行完毕后,主线程再往下执行。就在主线程里设置了等待函WaitForMultipleObject() 但是总是失败,程序会死掉。我想可能是因为我每个新线程中有弹出对话框, 那么怎么改呢? 才能实现主线程等待所有线程执行完毕呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 提个方案供参考做个线程计数,线程启动时在线程内部把这个全局计数加一结束时减一做好互斥主线程while (计数 != 0) Sleep(10); 每个线程里面的信号量你都设置了?WaitForMultipleObject函数里有个参数是代表等待其中任何一个信号量还是所有信号量,你没有弄错? 还用如果用WaitForMultipleObject,你需要等待一组信号量,这组信号量必须是你在子线程对话框返回后置位的. 建议你用一个信号量和一个全局的变量:父线程中:int i=0;e = createevent();{...int j=0;for(;j<10,j++)AfxBeginThread();waitforsingleEvent(&e);...}子线程中:{//进入临界区i++;if(i==9)setevent(e);//退出临界区/*子线程功能部分*/} 试试 MsgWaitForMultipleObjects 关于vs2010中MFC添加菜单出现的问题 切割窗口CTreeView的一个更新问题 vc如何实现自动连接VPN,更换VPN 弱弱地问一下 HDC释放的问题 动态连接库可以用utlraedit修改吗?急 关于动态添加属性页的问题,帮个忙吧! 我想问一下,如何发布程序? 基本问题:VC编译中的问题 SetWindowLong 和 SetClassLong VC 进程间同步 请教,如何响应这样的点击按钮事件?! 关于DDraw的问题(小弟刚学VC不久,望高手帮忙)
做个线程计数,线程启动时在线程内部把这个全局计数加一
结束时减一
做好互斥
主线程while (计数 != 0) Sleep(10);
父线程中:
int i=0;
e = createevent();
{
...
int j=0;
for(;j<10,j++)
AfxBeginThread();
waitforsingleEvent(&e);
...
}
子线程中:
{
//进入临界区
i++;
if(i==9)
setevent(e);
//退出临界区/*
子线程功能部分
*/}