自用Linux下的计时延时类

5 篇文章 2 订阅
2 篇文章 0 订阅

介绍

因为目前所用的架构是一个伪多线程,所以自己写了一个计时类,用于模拟计时。

基本原理

使用一个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);
        //超时的代码
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值