扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#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);
}
......//线程要执行的功能
姓名:冯成 学号:19020100164 学院:丁香二号书院
转自:
【 嵌牛导读 】本文将介绍linux下的C语言开发中的线程等待
【 嵌牛鼻子 】linux C语言 线程等待
【 嵌牛提问 】linux下的C语言开发中的线程等待是什么?
和多进程一样,多线程也有自己的等待函数。这个等待函数就是pthread_join函数。那么这个函数有什么用呢?我们其实可以用它来等待线程运行结束。
#include stdio.h
#include pthread.h
#include unistd.h
#include stdlib.h
void func(void* args)
{
sleep(2);
printf("this is func!\n");
}
int main()
{
pthread_t pid;
if(pthread_create(pid, NULL, func, NULL))
{
return -1;
}
pthread_join(pid, NULL);
printf("this is end of main!\n");
return 0;
}
编写wait.c文件结束之后,我们就可以开始编译了。首先你需要输入gcc wait.c -o wait -lpthread,编译之后你就可以看到wait可执行文件,输入./wait即可。
[test@localhost thread]$ ./thread
this is func!
this is end of main!
函数应该是没有。。sleep挂起了整个就停止了肯定不行
你可以弄个循环,定义两个时间,一个是你准备开始等待的时间start,一个是当前时间current
用c语言的时间函数得到这两个时间,做差
如果差值是0.1秒,就继续向下进行,如果不是0.1,就继续循环判断这样
while((current - start) 0.1); 大概是这么个意思。。自己写个循环把这个线程hang住
消息队列的等待就是GetMessage,没办法自己写,除非你打算改Windows本身。这个函数如果没有消息进来就会释放CPU,如果不希望等待用PeekMessage。消息循环的格式是固定的。
包含头文件:
#include
windows.h
调用
Sleep(3000);
就是等待3000毫秒(3秒)。第一个字母S大写。
--------
也可以自己写一个
等待
整数秒的函数:
#include
time.h
void
wait
(
int
seconds
)
{
clock_t
endwait;
endwait
=
clock
()
+
seconds
*
CLK_TCK
;
while
(clock()
endwait)
{}
}
调用
wait(3);
就是等待3秒
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流