C语言中如何让线程等待进程执行完一部分后,线程再继续执行
1个回答
展开全部
#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++倒是能行,建议百度一下线程同步,这个不是几句话能说得清的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询