实现计时器Timer类 C++

第九课:SDL计时器 这一课主要讲SDL的一个Ticket的应用,基本的例子就是计时器的应用,没有什么很复杂的东西,在上一课基础上就是加入了SDL_GetTicks的应用而已。 这个是一个计时器的一个类 timer.h #ifndef TIMER_H #define TIMER_H /** 计时器 **/ class Timer { public: Timer(); ///计时器开始 阅读详情

实现一个简单的计时器

为了方便,都写一个文件里了

#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...
    }
}

boost库使用—计时器类timer boost库使用—timer #### timer库简介 ​ timer是一个很小的库,提供简单的时间度量和进度显示功能,也可用于性能测试等计时任务。timer库包含三个组件:计时器类timer、progress_timer和进度指示类progress_display。 计时器类timer 包含头文件 #include <boost/timer.hpp> 流程: 实例化对象时开... 阅读详情

相关推荐

C++Boost库学习之timer库

目录 1.timer库概述 2.类cpu_timer 3.类auto_cpu_timer 4.格式 1.timer库概述 ^   timer是一个很小的库,提供简易的计时功能,对了解程序执行所需的时间在测试和生产环境中都很有用。   旧版本的计时器已经被弃用了,取而代之的是是更符合当前boost实践的CPU计时器cpu_timer和auto_cpu_timer。 2.类cp...

qq_17044529的博客 5137

C++实现Timer时间类

在 C/C++中,获取系统时间通常使用C的结构体来实现,使用起来相对不是很方便。而在使用等待函数的时候,windows和linux下使用的头文件和函数都不相同,等待的时间单位也不同(windows下为毫秒 linux下为微秒和秒)。 为了方便使用,我将这些功能封装成了Timer类。 实现代码如下(Timer.gpp): #pragmaonce //判断操作系统 #ifdef_WIN32 #pragmawarning(disable:4996) #include<wi...

m0_64428335的博客 3398

C++中基于MFC的计时器实现

CTimerCTimer是一个MFC(Microsoft Foundation Classes)库提供的计时器类,用于在应用程序中实现时间控制功能。其工作原理是通过定时发送 WM_TIMER 消息给指定窗口,从而触发应用程序对时间事件的响应和处理。消息映射是Microsoft Foundation Classes(MFC)中处理窗口消息的重要机制。MFC利用C++的函数重载特性,通过一组宏将消息与消息处理函数关联起来。

weixin_42393362的博客 1245

深入Linux C/C++ Timer定时器的实现核心原理

std::priority_queue是一个容器适配器,底层的容器默认使用的std::vector(make_heap())。但是这不意味着往std::priority_queue插入一个元素的开销是O(n),C++标准对此实现有要求,可以放心大胆的去用。但是std::priority_queue没有提供高效删除元素的接口,我们可以通过将回调函数置空的方式,以O(1)的时间复杂度实现删除。

帅不啦叽斯基的博客 2134

iPhone用户必看:TrollStore巨魔商店在线安装保姆级教程(iOS 14-16.6.1适用)

本文为iOS 14至16.6.1系统的iPhone用户提供了一份详细的TrollStore(巨魔商店)在线安装教程。文章从核心原理、安装前准备讲起,逐步详解了通过Safari浏览器获取安装器、信任企业证书、部署TrollStore及关键后置配置的全过程,并附带了常见问题排错指南,帮助用户安全、高效地实现无需越狱安装第三方应用。

h0i1j2k3l的博客 1969

文献阅读:SAR像素偏移的性能改进An Improvement of the Performance of SAR Offset Tracking Approach

像素偏移追踪POT文献阅读

weixin_56301271的博客 341

基于C++标准库实现定时器类

一般的Timer的接口都是支持一次性(alarm once)和周期性(alarm period)两种模式的,python的threading.Timer接口显然只支持alarm once模式, 虽然也可以通过在alarm once回调函数里再次创建timer的方式等价的实现alarm period模式, 不过我最近参考。接下来给出条件变量版本的C++的Timer类实现,如果C版本的代码看得懂,那C++版本的代码就可以说是一目了然,毕竟C++的版本是“直译”过来的。

qq18218628646的博客 2419

手把手教你用Keil5和Proteus8给51单片机跑个流水灯(附完整源码+安装包)

本文详细介绍了如何使用Keil5和Proteus8为51单片机实现流水灯效果,包括开发环境配置、汇编代码编写、电路设计及仿真调试。通过完整的源码和安装包,帮助初学者快速掌握C51单片机开发的核心流程,适合嵌入式开发入门学习。

weixin_42632434的博客 369

Timer定时器(C++)

SetTimer函数原型:UINT_PTR SetTimer ( HWND hWnd, // 窗口句柄,通常可以省去 UINT_PTR nIDEvent, //定时器ID,多个定时器时可以通过该ID判断是哪个定时器 UINT uElapse, // 时间间隔,单位为毫秒 TIMERPROC lpTimerFunc // 回调函数 )

一个叫木头&一个叫马尾 8773

AI应用架构师实战:高等教育智能课程推荐系统开发

性能:选课季并发量达1000QPS,推荐响应时间≤500ms(否则学生不耐烦)。数据隐私:符合《教育数据安全管理规范》,学生姓名、学号等敏感信息需匿名化存储。可扩展性:支持新增课程类型(如MOOC、实践课)、新增数据源(如竞赛获奖记录)。教育AI要“以教为中心”:不能纯技术驱动,要和教育工作者深度合作(如教师参与定义课程的前置关系)。数据是核心:数据质量决定推荐效果,要重视数据治理和隐私保护。持续迭代:教育需求是动态的(如每年新增课程、学生目标变化),要定期收集用户反馈,更新模型和策略。张三。

AI大模型应用之禅 1347

Centos 7 Linux 安装单机 Hadoop(HDFS):下载、安装、配置、测试

本文详细介绍了在 CentOS 7 系统上安装与配置单机 Hadoop(HDFS)的完整流程,涵盖 JDK 环境准备、Hadoop 安装包下载与部署、核心配置文件(core-site.xml、hdfs-site.xml 等)修改、SSH 免密登录设置、HDFS 格式化及服务启动,并通过命令行与 Web 界面验证 HDFS 和 YARN 功能,适合 Hadoop 初学者快速搭建本地测试环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 3234

C++ 中timer的使用

停止这个定时器,当满足某种条件时,不用定时器的任务继续跑了,停止这个定时器的运行。删除这个定时器,当某种情况满足的时候不需要这个定时器的功能了,结束此定时器。定时器想做做的事情是在固定的时刻去做某件事情。创建一个定时器,去让在固定时刻去做某种事情。在git hab上有一个专用的c++定时器。其中定时器的使用有oneshot和周期性的。首先,要理解一下定时器。那么定时器要有几种功能。

linan101的博客 1159

基于BenchmarkSQL的达梦数据库TPCC性能测试

中的用户和密码在达梦数据库中创建测试用户,并保证其表空间足够容纳生成的测试数据。如果开启了归档,还要考虑归档日志占用的空间。BenchmarkSQL默认不支持达梦数据库。这里我们让BenchmarkSQL把达梦数据库当作Oracle即可。Oracle数据库对应的测试配置文件为。是使用BenchmarkSQL进行性能测试的主要配置文件。是生成的测试报告,png文件是报告中包含的图片。拷贝达梦数据库驱动到BenchmarkSQL的。测试结束后,会在当前路径下生成一个以。规则命名的结果目录。

Sebastien23的博客 2634

epoll定时器实现系列文章:linux c++ 利用timerfd和epoll封装计时器(Timer)类

http://blog.youkuaiyun.com/sumkee911/article/details/50269429程序简介:1.把timerfd和epoll的功能封装成一个类,timerfd负责创建计时器,而epoll负责等待timer超时,然后调用用户设定得回调函数。2.至于timerfd的基本功能不明白,就参考这位大神的技术文章:blog.youkuaiyun.com/chgaowei/article/det...

$firecat利白的代码足迹$ 2282

人工智能数据治理——解读AI时代数据治理白皮书 2025【附全文阅读】

摘要:该白皮书面向企业数字化负责人及AI项目推进人员,探讨AI时代数据治理的战略升级。提出"好数据+好数据知识"双基石理念,强调数据需满足"三高"标准(高精度、一致性、时效性)并构建语义知识库。构建四层治理框架,包括数据采集处理、合规安全、知识库建设及质量改进,并介绍AI赋能治理的新范式,如智能ETL和治理Agent体系。同时分析"软件+AI+好数据"的应用模式,为企业实现智能数据治理提供实践指导。(149字)

cdfunlove的博客 632

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

boost之Timer Library(计时器库)

转自:  http://www.c-view.org/tech/lib/cboost/timer.htm Timer Library(计时器库)翻译:tangtao  英文文档(English)© Copyright 1999 Beman Dawes. Permission to copy, use, modify, sell and distribute this doc

3480

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C++ 统计程序运行时间的实现

1. include文件<chrono> 2.创建类:Timer class Timer { public: Timer() : beg_(clock_::now()) {} void reset() { beg_ = clock_::now(); } double elapsed() const { return std::chrono::...

Jeff_Huang的博客 632

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

苏州大学计科院2015C++考试(第二次)

按以下要求编写程序 请按要求编写一个类Timer,用于描述一个计时器,并用给定的main函数测试Timer类的功能。Timer类的要求如下: 该类数据成员包含分钟minute,秒second。均为整型。分钟和秒取值范围为0-59。注意:两个数据成员均为私有。 1个带有2个参数的构造函数,缺省值都为0。2个参数分别初始化计时器对象的分钟和秒值。注意:初始化值超过分钟和秒取值范围的自动设为0。 1个...

Steph的博客 409

c++ 计时

class ZTimer { public: ZTimer() { _startCount.QuadPart = 0; _endCount.QuadPart = 0; QueryPerformanceFrequency(&_frequency); QueryPerformanceCounter(&_startCount); } double Elapsed() {

IS2120 632

c语言中缺少函数标题,新人求教 错误 timer.h(15) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)...

使用 'Microsoft Visual C++ 2013 Professional' 编译。timer.h文件源码如下#ifndef _TIMER_H_#define _TIMER_H_#include #include //#include //windows下的time.h中没有timeval定义#include //windows下代替#include //windows下代替using...

weixin_33602696的博客 1617

C++: 计时器类的设计和实现

使用C++完成一个基础的计时器类的设计和实现,能以不同单位(秒、毫秒、微秒)的形式表示耗时,并且计时器可以反复使用。

baiyu33的博客 1666

c++精确时间统计

#include <chrono> auto start = std::chrono::high_resolution_clock::now(); auto end = std::chrono::high_resolution_clock::now(); auto cost = std::chrono::duration_cast<std::chrono::milliseconds>(end-start).count();

qq_17127427的博客 567

C++ Boost库:计时器 timer

文章目录1. timer类2. cpu_timer类 1. timer类 timer是一个很小的库,提供简单的时间度量和进度显示功能,也可用于性能测试等计时任务。timer库包含三个组件:计时器类timer、progress_timer和进度指示类progress_display。 timer类可以测量时间的流逝;是一个小型的计时器,提供毫秒级别的计时精度和操作函数,它最大可表示的时间间隔约为596小时,它位于boost命名空间下。使用时需要包含头文件: #include<boost/timer.hp

超级大洋葱的博客 7130

C++高性能计时器:深入理解chrono库与Timer实现

在现代C++开发中,性能测量是优化和调试的关键环节。本文将介绍一个基于C++11<chrono>库的高精度Timer实现,重点分析high_resolution_clock的特性与应用场景。

sillyss的博客 1847

C++程序设计_简易计时器(Timer)的控制台实现

求打赏求收藏求转发! 提供PDF资源 https://download.youkuaiyun.com/download/weixin_43781565/12429047 (审核后可供下载) Peace and love 信控学院专业课实验报告 专业 软件工程 简易计时器(Timer)的控制台实现 目录 一、实验名称 1 二、实验目的 1 三、实验平台 1 四、问题分析 1 ①问题描述与需求分析 1 ②程序功能抽象 1 五、 设计/开发解决方案 1 六、实验结果 5 图1-1初始..

Jason~~ 1112
上一篇: LPSTR与LPWSTR相互转换
下一篇: C++ 与、或运算总结
「已注销」
博客等级 码龄5年 3粉丝 8原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值