C++怎么能间隔一定的时间执行指定的代码3
发布网友
发布时间:2023-10-20 10:40
我来回答
共4个回答
热心网友
时间:2024-12-05 21:04
可以使用延时函数。
在需要间隔的地方执行延时函数可以使系统暂停一段时间,时间由延时函数的参数指定。从而达到要求的目的。
延时函数不是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);
热心网友
时间:2024-12-05 21:05
“函数调用的时间间隔是相对于循环开始来说的”
按你说的这个,应该是用timer吧,计时器,函数内部管理timer启动关闭就可以了,通过函数SetTimer()函数来创建
每个timer里面写调用代码,
热心网友
时间:2024-12-05 21:05
时间间歇函数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++;//实现没一毫秒加一次
}
热心网友
时间:2024-12-05 21:06
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会造成线程卡住.还有别的办法吗?
追答这问题我也想过,时间函数不熟,也想过用外部程序计时,实在想不出解决方法