介绍
因为目前所用的架构是一个伪多线程,所以自己写了一个计时类,用于模拟计时。
基本原理
使用一个64位无符号整数位以100hz的心跳累加从而作为基本时钟。大概需要用5亿年才能溢出。
H文件
#H文件
class count
{
public:
count();
void countADD(int add);
bool overTime(int cir);
private:
unsigned long long x,y,TStone;
enum countStatus{
inCount,
noCount,
}status;
};
C文件
count::count()
{
this->x=0;
this->y=0;
this->status=countStatus::noCount;
}
void count::countADD(int add){
this->TStone+=add;
}
bool count::overTime(int cir){
bool re=false;
switch (this->status) {
case noCount:
this->status=countStatus::inCount;
this->x=TStone;
this->y=TStone;
break;
case inCount:
this->y=TStone;
if(((this->y)-(this->x))>cir){
this->status=countStatus::noCount;
this->x=TStone;
this->y=TStone;
re=true;
}else {
this->status=countStatus::inCount;
re=false;
}
break;
default:
break;
}
return re;
}
使用例子
void main(){
count count
if(count.overTime(100)){
//未超时的代码
}else{
count.add(1);
//超时的代码
}
}