自用Linux下的计时延时类

介绍

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

基本原理

使用一个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);
        //超时的代码
    }
}

你可能感兴趣的:(Linux,学习笔记,C++,开发语言)