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);
创建了三个子线程,如何使子线程运行结束后主线程再继续运行呢??
因为我是主要是想在子线程里实现死循环,所以在子线程里设置信号量不行。。。 展开
hThread1 = CreateThread(NULL,0,ThreadProc1,NULL,0,NULL);
hThread2 = CreateThread(NULL,0,ThreadProc2,NULL,0,NULL);
hThread3 = CreateThread(NULL,0,ThreadProc3,NULL,0,NULL);
创建了三个子线程,如何使子线程运行结束后主线程再继续运行呢??
因为我是主要是想在子线程里实现死循环,所以在子线程里设置信号量不行。。。 展开
展开全部
设置一个全局的变量,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;
这样就能等所有子程序都执行完再继续了
调用前,将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;
这样就能等所有子程序都执行完再继续了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |