C++定时器的使用方法

说白了就是三个函数的使用:

void CLMS511_interfaceDlg::OnTimer(UINT_PTR nIDEvent)
{
    // TODO: Add your message handler code here and/or call default

    if(nIDEvent == 20)   //这个20是第一个20.
    {

             DrawData();
        if(MySSocket.StopFlag)
            SendServer();
    }

    CDialog::OnTimer(nIDEvent);
}

KillTimer(20);  //销毁标示符为20的定时器

说明:

SetTimer()定时器的第一个参数是定时器标识,可用任一非0的整数,第二个参数是定时器的时间间隔,单位是毫秒.第三个参数取值可以是NULL,
这时WM_TIMER的消息加入应用程序的消息队列中,由CWnd类对象处理 例如 SetTimer(1,1,NULL)的时间间隔是1毫秒
下面例举一下定时函数的种类:
Windows API  SetTimer(HWND,UNIT,UINT,TIMERPROC);  参数意义:  1.记时器所在窗口句柄  2.序号  3.记时周期  4.记时器响应函数 CWnd类的 CWnd::SetTimer UINT SetTimer(  UINT nIDEvent,    //定时器的标识符 UINT nElapse,    //所要定时的时间 void (CALLBACK EXPORT* lpfnTimer)(  HWND, UINT, UINT, DWORD) ); 
 下面是C++中如何测一个程序运行的时间举例:
unsigned long ticks1,ticks2; 在你要测试的开头写上 ticks1 = GetTickCount(); 测试部分结束时写上 ticks2 = GetTickCount();ticks2-ticks1就是所用时间 加上这个头文件Winbase.h下面再介绍一种测量程序执行时间的办法:

<time.h> 版本

clock_t start = clock();
2./*code to be tested*/
3.clock_t end   = clock();
4.cout<<end - start<<endl;

大家多这个版本多半不会陌生,这应该是最常用的执行时间测试方法了,能精确到ms级。

 
在程序运行时打印到屏幕上的函数TRACE()  TRACE("距离:%d",m_DIST[i]);//在输出栏输出信息。
就是记录日志信息的。%s在程序执行的时候替换成address对应的值。%d替换成函数WSAGetLastError()返回的错误码。 总体翻译过来就是Server "address" Can‘t Find Code="WSAGetLastError()"  具体是写到文件里边,还是输出到标准输出即屏幕上,这个要看TRACE的实现了。

还有一个定时的方法,用sleep()函数实现。调用windows.h
 
时间: 2024-11-29 04:23:45

C++定时器的使用方法的相关文章

Android定时器功能实现方法

在Android开发中,定时器一般有以下3种实现方法: 1.采用Handler与线程的sleep(long)方法 2.采用Handler的postDelayed(Runnable, long)方法 3.采用Handler与timer及TimerTask结合的方法 下面逐一介绍: 一.采用Handle与线程的sleep(long)方法 Handler主要用来处理接受到的消息.这只是最主要的方法,当然Handler里还有其他的方法供实现,有兴趣的可以去查API,这里不过多解释. 1.定义一个Hand

linux定时器的实现方法

Linux提供定时器机制,可以指定在未来的某个时刻发生某个事件,定时器的结构如下: struct timer_list { struct list_head list; unsigned long expires; unsigned long data; void (*function)(unsigned long); }; list 实现的时候使用的,和定时器功能无关expires 是定时器定时的滴答数(当前的滴答数为 jiffies )function 到那个时刻内核调用的函数data 由于

Spring定时器调用Hibernate方法无法获得SessionFactory的解决办法

由于在Spring定时器中无法通过注解的方式获取bean,因此需要通过原生的方式获取.获取session的方式如下: WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext(); SessionFactory factory=wac.getBean(SessionFactory.class); Session session=factory.openSession();

QT中定时器的使用方法

前言:因为QT中用死循环会开销很多内存容易崩溃,这时候使用定时器可以很好解决这个问题. 使用定时器需要用到头文件:include<QTimer> (1)定义定时器 QTimer *update_time; (2)监听定时器,超时的时候启动槽函数 connect(update_time,SIGNAL(timeout()),this,SLOT(time_update())); (3)启动定时器 update_time->start(1000); //1秒钟后启动

JavaScript实现绑定DOM的定时器插件

问题 使用原生的setTimeout和setInterval仅仅能够实现, 定时执行事件处理函数, 在网页开发中, 往往会出现一种情况,定时器用于定时更新某个页面区域的数据, 往往在页面加载之后, 就启动这个定时器, 往后则间隔执行此定时器. 页面上定时刷新的区域可能会动态消失, 特别是在ajax被广泛使用的今天, 如果定时刷新的区域被删除了, 则定时器材也需要自动清除掉. 此二个接口,如果实现这种效果需要, 自己维护定时器句柄, 并且在处理定时器事件函数的时候, 首先判断 指定的刷新区域是否还

更加精确的定时器:dispatch_source_t

在使用定时器时,我们经常使用NSTimer,但是由于NSTimer会受RunLoop影响,当RunLoop处理的任务很多时,就会导致NSTimer的精度降低,所以在一些对定时器精度要求很高的情况下,应该考虑采用GCD定时器,实现代码如下: // 队列(队列时用来确定该定时器存在哪个队列中) dispatch_queue_t queue = dispatch_get_main_queue(); // 创建GCD定时器 _timer = dispatch_source_create(DISPATCH

IOS开发--动画篇--&gt;计时定时器

计时定时器 设计计时定时器的步骤: 1,创建可变数组,存放 0~100 的数字 2,用for循环创建 0~100 的数字,并将其放入可变数组中 3,创建定时器:创建定时器: 参数1:设置时间间隔:参数2:目标:参数3:定时器绑定的方法:参数4:补充信息,一般为空:参数5:是否重复 _timer = [NSTimerscheduledTimerWithTimeInterval:0.1target:self selector:@selector(outPut) userInfo:nilrepeats

NSTimer 的简易使用方法

一.使用方式 1.声明NSTimer方法 static CGFloat sIntervalTime = 15.f; //定时刷新时间间隔 @property (nonatomic, strong) NSTimer *queryNoticeTimer; 2.开启定时器,初始化定时器方法,注意一点是一定要先停止定时器判断,再开启,否则会出现内存泄漏哒,userInfo字段是传递数据时会用到,当调用定时器时候,需要传递参数时,可以生命userInfo方法. - (void)startQueryTime

定时器复习

//设置一个定时器(setTimeout)等到1000ms后开始执行对应的方法,方法执行完成后,定时器结束 window.setTimeout(function(){ },1000); //设置一个定时器(setInterval)等到1000ms后开始执行对应的方法,方法执行完成后,定时器 // 并没有结束,以后每隔1000ms都会把定时器中的方法执行一次...直到手动清除定时器为止 window.setInterval(function(){ },1000); //2.设置定时器的时候是有返回