实现一个简单的计时器
为了方便,都写一个文件里了
#include <sys/timeb.h>
class Timer {
private:
bool isNull = true;//是否为空
bool Changeable = true;//是否能改变时间间隔
public:
__int64 interval = 1000; //计时器间隔时间(毫秒)
__int64 lasttime = 0; //上一次执行的时间
void Init(int _interval, bool _Changeable) {//初始化
interval = _interval;
Changeable = _Changeable;
isNull = false;
}
Timer() {
Init(1000, true);
}
Timer(int _interval) {
Init(_interval, true);
}
Timer(int _interval, bool _Changeable) {
Init(_interval, _Changeable);
}
~Timer() {
isNull = true;
}
bool SetInterval(int _interval) {//设置时间间隔
if (!Changeable) {
return false;
}
interval = _interval;
return true;
}
bool IsNull() {
return isNull;
}
bool isActionTime() { //是否到时间执行
if (isNull) {
return true;
}
timeb t;
ftime(&t); //获取时间
__int64 currenttime = t.time * 1000 + t.millitm; //化为毫秒
if (lasttime == 0) {
lasttime = currenttime;
return true;
}
if (lasttime + interval <= currenttime) {
lasttime = currenttime;
return true;
}
else {
return false;
}
}
};
可以初始化的时候设置时间间隔,也可以调用SetInterval设置。
一个简单的例子:
Timer timer1(1000);//时间间隔一秒
while(1){
if (timer1.isActionTime()){
//do work...
}
}
本文介绍了如何在C++中实现一个简单的计时器类,该类允许在初始化时或通过调用SetInterval方法设置时间间隔。提供了一个基本的使用示例。
2408

被折叠的 条评论
为什么被折叠?



