C++怎么能间隔一定的时间执行指定的代码

某函数内部{while(1){//间隔100毫秒调用函数1//间隔500毫秒调用函数2//间隔1000毫米调用函数3//间隔5000毫秒调用函数4//时间超过XXX毫米r... 某函数内部
{
while(1)

{
//间隔100毫秒调用函数1

//间隔500毫秒调用函数2

//间隔1000毫米调用函数3

//间隔5000毫秒调用函数4

//时间超过XXX毫米return;

}
}

时间不用特别的精确, 误差在100毫秒之内就可以,而且这里面的每个函数调用的时间不会超过100毫米.

因为有的函数非常耗费资源, 我想通过时间来限制其执行次数,但是另外的函数又要很高执的行次数
有什么好的方法没?不知道我说的你们听懂没??
可能你们误会我的意思了,
我是想从循环开始就开始计时, 这些函数调用的时间间隔是相对于循环开始来说的.并不是执行一个暂停一下在执行另一个.
展开
 我来答
_叶子妞妞_
推荐于2017-09-22 · TA获得超过3672个赞
知道小有建树答主
回答量:327
采纳率:83%
帮助的人:90.4万
展开全部
可以使用延时函数。
在需要间隔的地方执行延时函数可以使系统暂停一段时间,时间由延时函数的参数指定。从而达到要求的目的。

延时函数不是C库函数,所以因编译器不同而有所区别。

一、windows系统的编译器下,可以使用Sleep函数。注意首字母S大写。
函数名: Sleep
功 能: 执行挂起一段时间
用 法: void Sleep(DWORD dwMilliseconds);
头文件:#include <windows.h>
参数的时间单位是毫秒,即使用Sleep(n);可以延时n毫秒。
比如延时1.5秒,可以写作
Sleep(1500);

二、Linux编译器下根据时间的不同,可以使用sleep和usleep,或二者搭配。注意都是小写字母。
二者功能都是执行挂起一段时间,其中sleep单位为秒,usleep单位为微秒

头文件都是#include <unistd.h>
用法为

void sleep(unsigned long seconds);
void usleep(unsigned long useconds);
如果以秒为单位,需要整数部分调用sleep, 小数部分乘以10^6后,调用usleep。
比如延时1.5秒,可以用
sleep(1);
usleep(500000);
水焱新火
推荐于2017-10-14 · TA获得超过256个赞
知道小有建树答主
回答量:144
采纳率:100%
帮助的人:128万
展开全部
“函数调用的时间间隔是相对于循环开始来说的”

按你说的这个,应该是用timer吧,计时器,函数内部管理timer启动关闭就可以了,通过函数SetTimer()函数来创建
每个timer里面写调用代码,
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汐_枫
2014-02-06 · TA获得超过329个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:266万
展开全部
时间间歇函数Sleep(int);//单位毫秒,不用自己写的。
追问
Sleep会造成线程卡住.还有别的办法吗?
追答
int count=0;//计时器
while(1)
{
if(count%100==0)
函数1;
if(count%500==0)//如果想错开时间可以count%500==50之类的
函数2;
……
if(count==……)
break;
Sleep(1);
count++;//实现没一毫秒加一次
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Rankabc
2014-02-06 · TA获得超过3561个赞
知道大有可为答主
回答量:3705
采纳率:59%
帮助的人:1072万
展开全部
t=0;
{Sleep(100); fun1();t=t+100;} //Sleep函数头文件 #include <windows.h>
{Sleep(500); fun2();t=t+500;}
{Sleep(1000); fun3();t=t+1000;}
{Sleep(5000); fun4();t=t+5000;}
if(t>xxx)return ;
追问
Sleep会造成线程卡住.还有别的办法吗?
追答
这问题我也想过,时间函数不熟,也想过用外部程序计时,实在想不出解决方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式