windows API主线程如何等待子线程结束后再继续运行

我在主线程里利用hThread1=CreateThread(NULL,0,ThreadProc1,NULL,0,NULL);hThread2=CreateThread(N... 我在主线程里利用
hThread1 = CreateThread(NULL,0,ThreadProc1,NULL,0,NULL);
hThread2 = CreateThread(NULL,0,ThreadProc2,NULL,0,NULL);
hThread3 = CreateThread(NULL,0,ThreadProc3,NULL,0,NULL);
创建了三个子线程,如何使子线程运行结束后主线程再继续运行呢??
因为我是主要是想在子线程里实现死循环,所以在子线程里设置信号量不行。。。
展开
 我来答
149005501
推荐于2016-05-31 · TA获得超过8.6万个赞
知道顶级答主
回答量:7.9万
采纳率:90%
帮助的人:1.3亿
展开全部
设置一个全局的变量,thread1,thread2...
调用前,将thread1.……都设置为0,然后调用子程序,子程序调用结束时,设对应变量为1...
这样,主程序只要等所有子程序变量都为1时,就可以继续运行了。
示例:

定义全局变量
static int thread1=0;
...

然后主程序调用
hThread1 = CreateThread(NULL,0,ThreadProc1,NULL,0,NULL);

...

在调用的子程序结束时,添加:

thread1=1;

然后主程序判断:
loop:
if( thread1=1 and thread2=1 and thread3=1 )
{
goto end;
else goto loop;
}
end;
这样就能等所有子程序都执行完再继续了
wanfustudio
2009-05-10 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3706万
展开全部
可以添加信号量,在主程序中等待,当子线程全部置过信号量之后,主线程继续执行
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式