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

 我来答
百度网友2018359
2017-03-25 · TA获得超过3494个赞
知道大有可为答主
回答量:3486
采纳率:73%
帮助的人:1429万
展开全部
 #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++倒是能行,建议百度一下线程同步,这个不是几句话能说得清的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式