C语言中如何让线程等待进程执行完一部分后,线程再继续执行

如题所述

 #include "afxmt.h"
//全局变量
CEvent event(FALSE, TRUE); //第二个参数为TRUE表示手动信号
event.SetEvent( );
//线程中要等待的地方
WaitForSingleObject(event, INFINITE) //永远等待
......//线程中的代码
event.ResetEvent( );  //线程挂起
//-----------------------------------------------------
//以上代码C好像不行,可以用笨办法
//定义一个全局标识变量int flag=0;
//在线程中
while(flag==0) //在主线程中改变flag的值,一旦不为0,则执行线程中的代码
{
    Sleep(1);
}
......//线程要执行的功能

追问

循环次数多了,这个实现就有点困难,我想的是让线程先走,然后是主进程,再线程

追答

Sleep(1); 线程暂停1毫秒,并且把CPU时间片交给其它线程,相当于线程挂起。
我不知道C有没有内核对象, 互斥对象这些概念,C++倒是能行,建议百度一下线程同步,这个不是几句话能说得清的。

温馨提示:答案为网友推荐,仅供参考
相似回答