C++怎么能间隔一定的时间执行指定的代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++怎么能间隔一定的时间执行指定的代码相关的知识,希望对你有一定的参考价值。
某函数内部
while(1)
//间隔100毫秒调用函数1
//间隔500毫秒调用函数2
//间隔1000毫米调用函数3
//间隔5000毫秒调用函数4
//时间超过XXX毫米return;
时间不用特别的精确, 误差在100毫秒之内就可以,而且这里面的每个函数调用的时间不会超过100毫米.
因为有的函数非常耗费资源, 我想通过时间来限制其执行次数,但是另外的函数又要很高执的行次数
有什么好的方法没?不知道我说的你们听懂没??
可能你们误会我的意思了,
我是想从循环开始就开始计时, 这些函数调用的时间间隔是相对于循环开始来说的.并不是执行一个暂停一下在执行另一个.
在需要间隔的地方执行延时函数可以使系统暂停一段时间,时间由延时函数的参数指定。从而达到要求的目的。
延时函数不是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); 参考技术A “函数调用的时间间隔是相对于循环开始来说的”
按你说的这个,应该是用timer吧,计时器,函数内部管理timer启动关闭就可以了,通过函数SetTimer()函数来创建
每个timer里面写调用代码,本回答被提问者和网友采纳 参考技术B 时间间歇函数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++;//实现没一毫秒加一次
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会造成线程卡住.还有别的办法吗?
追答这问题我也想过,时间函数不熟,也想过用外部程序计时,实在想不出解决方法
C# 如何间隔一定的时间执行一次代码?
如题,我想间隔一段时间然后执行一次代码,请大家帮帮忙,谢谢!
如果可以的话,真希望能有代码段,这样更能看明白。谢谢,最好是C#的。 settimeout()setinterval()好像不能用,555555我急的,谁能帮帮忙,谢谢了
1、可以使用Timer定时器,设置指定的时间执行一次
在C#里关于定时器类就有3个
1、定义在System.Windows.Forms里
2、定义在System.Threading.Timer类里
3、定义在System.Timers.Timer类里
System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API SetTimer实现的。它的主要缺点是计时不精确,而且必须有消息循环,Console Application(控制台应用程序)无法使用。
System.Timers.Timer和System.Threading.Timer非常类似,它们是通过.NET Thread Pool实现的,轻量,计时精确,对应用程序、消息没有特别的要求。System.Timers.Timer还可以应用于WinForm,完全取代上面的Timer控件。它们的缺点是不支持直接的拖放,需要手工编码。
参考地址:
1、http://blog.csdn.net/kankankankan2222/article/details/8249602
2、http://blog.csdn.net/hugoandpig/article/details/7743452 参考技术A C#的winform中有Timer控件,可以定时执行指定的代码。
控件的属性中有个设置时间间隔的,忘了是什么名字,默认1000的那个,单位是毫秒。
双击Timer控件在事件里写要在设定的时间间隔后执行的代码就可以了,
Public void 循环执行的代码()
Timer双击事件
循环执行的代码();
本回答被提问者采纳 参考技术B 可以使用定时线程
用
system.threading.timer创建 参考技术C js有settimeout()setinterval()c#记得也能用记混了
以上是关于C++怎么能间隔一定的时间执行指定的代码的主要内容,如果未能解决你的问题,请参考以下文章