C++里面定时器的使用
说白了就是三个函数的使用:
SetTimer(20, 20, 0); //第一个20表示此定时器的标识符,第二个20表示你要定的时间,第三个不用管,设0即可。
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();
- /*code to be tested*/
- clock_t end = clock();
- 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
C++里面定时器的使用的更多相关文章
- Objective-C三种定时器CADisplayLink / NSTimer / GCD的使用
OC中的三种定时器:CADisplayLink.NSTimer.GCD 我们先来看看CADiskplayLink, 点进头文件里面看看, 用注释来说明下 @interface CADisplayLin ...
- 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)
转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...
- [Java定时器]用Spring Task实现一个简单的定时器.
今天做一个项目的的时候需要用到定时器功能.具体需求是: 每个月一号触发一次某个类中的方法去拉取别人的接口获取上一个月份车险过期的用户.如若转载请附上原文链接:http://www.cnblogs.co ...
- Node+fs+定时器(node-schedule)+MySql
目标:将本人写博客时候的截图保存到桌面的图片 执行保存到指定文件进行整理 并写入数据库 先看最终的目录结构: package.json文件: { "name": "zqz ...
- 深入理解定时器系列第一篇——理解setTimeout和setInterval
× 目录 [1]setTimeout [2]setInterval [3]运行机制[4]作用[5]应用 前面的话 很长时间以来,定时器一直是javascript动画的核心技术.但是,关于定时器,人们通 ...
- 前端开发:setTimeout与setInterval 定时器与异步循环数组
前端开发:setTimeout与setInterval 定时器与异步循环数组 前言: 开通博客园三个月以来,随笔记录了工作中遇到的大大小小的难题,也看过无数篇令人启发的文章,我觉得这样的环境是极好的, ...
- 转载---javascript 定时器总结
转载:http://www.jb51.net/article/40193.htm JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延 ...
- Node中的定时器详解
在大多数的业务中,我们都会有一些需求,例如几秒钟实现网页的跳转,几分钟对于后台数据进行清理,node与javascript都具有将代码延迟一段时间的能力.在node中可以使用三种方式实现定时功能:超时 ...
- spring定时器,定时器一次执行两次的问题
Spring 定时器 方法一:注解形式 配置文件头加上如下: xmlns:task="http://www.springframework.org/schema/task" htt ...
- setTimeout和setInterval定时器使用详解测试
var len=4; while(len--){ var time=setTimeout(function(){ console.log(len); },0); console.log(time); ...
随机推荐
- SGU 乱搞日志
SGU 100 A+B :太神不会 SGU 101 Domino: 题目大意:有N张骨牌,两张骨牌有两面有0到6的数字,能相连当且仅当前后数字相同,问能否有将N张骨牌连接的方案?思路:裸的欧拉回路,注 ...
- webpack编译vue出现dev警告
alias配置 vue < 2.1.0 module.exports = { ... resolve: { alias: { 'vue$': 'vue/dist/vue.js' } }, ... ...
- python2.7运行出现的Warning: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
运行出现如下错误 uncode编码警告:在unicode等价比较中,把两个参数同时转换为unicode编码失败.中断并认为他们不相等. windows下的字符串str默认编码是ascii,而pytho ...
- bzoj 1228 [SDOI2009]E&D SG函数打表 找规律
题目链接 Description 桌子上有2n 堆石子,编号为1..2n.将第2k-1 堆与第2k 堆(1 ≤ k ≤ n)为同一组.第i堆的石子个数用一个正整数Si表示.一次分割操作指的是,从桌子上 ...
- [MySQL] lock知识梳理
MySQL Lock机制 INDEX: MySQL事务隔离级别 MVCC MySQL Lock类型 MySQL MDL CONTENT: 1. MySQL事务隔离级别 Read Uncommit RU ...
- abstract抽象类和interface接口
一.抽象类 1.抽象类不能实例化,因为有抽象方法未实现 2.可以被抽象类或非抽象类继承 3.但不是只能被继承,还可以直接拿来使用的,当然,这个使用是拿来声明,反例如下: public abstract ...
- hdu 4985(模拟)
Little Pony and Permutation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
- LeetCode OJ-- Jump Game
https://oj.leetcode.com/problems/jump-game/ 从0开始,根据每一位上存的数值往前跳. 这道题给想复杂了... 记录当前位置 pos,记录可以调到的最远达位置为 ...
- NYOJ 20.吝啬的国度-DFS+STL(vector保存上一节点)
整理代码 吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第 ...
- python-字符转换遇到的问题
1,异常: 'ascii' codec can't encode characters 字符集的问题,在文件前加两句话:import sysreload(sys)sys.setdefaultencod ...