开发中经经常使用GetTickCount()函数来进行间隔时间的推断。如推断某一段代码运行花了多少时间等,使用比較方便。

可是仅仅针对寻常的一些測试。近期开发一个服务程序时,也在代码中用GetTickCount()来进行推断,大体格式例如以下:

DWORD dwBegin = 0;

void Thread_Run(void)
{
while(TRUE)
{
DWORD dwNow = GetTickCount();
if (dwNow - dwBegin > 30) //second
{
....//
dwBegin = dwNow;
}
}
}

问题来了,GetTickCount()返回的是DWORD类型,返回的值代表程序从启动到如今走过的时间。

DWORD类型的最大值为4294967295,折算成天是49.7。也就是说当服务程序连续跑了50天之后,再调用GetTickCount()的时候就会发生溢出。所以服务程序尽量不要用GetTickCount()。

假设要推断间隔时间能够用1970年以来的秒数差来计算。


GetTickCount()函数的陷阱!的更多相关文章

  1. getTickCount()函数 VS GetTickCount()函数

    这俩函数看上去长得太像了,笔者曾经马大哈地把两者当成一个函数了(确实长得很像),知道有一天发现返回的值离预期值差很远差仔细查了下. 1. getTickCount() 实际上,该函数为opencv中的 ...

  2. rand()和srand()GetTickCount函数用法

    标准库<cstdlib>(被包含于<iostream>中)提供两个帮助生成伪随机数的函数: 函数一:int rand(void):从srand (seed)中指定的seed开始 ...

  3. GetTickCount() 函数的作用和用法

    今天项目中60秒倒计时模块需要用到GetTickCount(),这个函数,在此做下整理和总结. 1.定义 For Release configurations, this function retur ...

  4. GetTickCount()函数

    GetTickCount(),这个函数,在此做下整理和总结.1.定义For Release configurations, this function returns the number of mi ...

  5. ES6里箭头函数的陷阱

    ECMAScript 6新增了箭头函数 原来的匿名函数 function(){},现在可以简化成()=>{} 看起来高大上,像C#什么的语法. 但是箭头函数的this对象,不能更改,总是指向函数 ...

  6. C++虚函数的陷阱

    首先看一段代码: class B { public: ) { std::cout << "base fun called, " << i; }; }; cl ...

  7. Hadoop之Hive自定义函数的陷阱

    A left join B, 这个B会连到A. 如<A1,B>, <A2,B>,在处理第一条记录的时候将B.clear(),则第二条记录的B是[]空的这是自定义UDF函数必须注 ...

  8. c++ string.find()函数的陷阱

    string.find(char *)查找字符串中是否包含子串 找到:返回第一个索引 没有找到:返回一个很大的随机数字而不是返回负数(这是个坑) 所以不能这么写if (string.find(str) ...

  9. Python中关于join函数的陷阱?

    目录 说明 数据说明 正确示例 错误示例 解决办法 说明 最近在用Python的join函数连接多个列表时,出现了如下两个错误,即合并类型不一致.折腾了很久才找到原因,真是基础不牢,地动山摇. Typ ...

随机推荐

  1. 想转行做web前端工程师,必学这6大技能

    web前端工程师是近几年才发展出来的新兴职业,也是目前火爆且高薪的职业.大需求的市场环境下,出现了越来越多的人群转行做web前端工程师,如设计师.后台程序员.网虫.大学其他专业.策划.编辑等等. 要学 ...

  2. EL的函数与标签

    1 什么EL函数库 EL函数库是由第三方对EL的扩展,我们现在学习的EL函数库是由JSTL添加的.下面我们会学习JSTL标签库. EL函数库就是定义一些有返回值的静态方法.然后通过EL语言来调用它们! ...

  3. springboot微服务的简单小结

    springboot微服务的简单小结 近来公司用springboot微服务,所以小结一下. 基础: 什么是SpingBoot微服务? 如何创建SpringBoot微服务? 如何管理和完善SpringB ...

  4. csu1808

    csu1808 题意 n 个点间有 m 条地铁,每条地铁可能属于不同的线路,每条地铁有权值即通过时花费的时间,如果乘坐第 i 条地铁来到地铁站 s,再乘坐第 j 条地铁离开,需要花费额外的时间 \(| ...

  5. ORA-17129=SQL 字符串不是DML 语句

    ORA-17129=SQL 字符串不是DML 语句 oracle这个错误的意思是 select 不可以算DML 数据操纵语言(Data Manipulation Language, DML)是SQL语 ...

  6. lua的模式匹配

    模式: 字符类:(character classes) . all characters %a letters %c control characters %d digits %l lower -ca ...

  7. Laravel 使用firstOrCreate 报错MassAssignmentException

    今天尝试使用firstOrCreate去优化一段查找不到即创建的代码,结果发现会报MassAssignmentException错误,提示我参数错误,去网上找了好久没有找到结果,最后庆幸自己解决了,把 ...

  8. 查看tomcat启动文件都干点啥---server对象

    在上一章查看tomcat启动文件都干点啥---Catalina.java中说道了构造Server,,这次尝试着说一下Tomcat中Server的内容,首先看一下org.apache.catalina. ...

  9. java中/与%的区别

    System.out.println(3/5) = 0: System.out.println(2/5) = 0: System.out.println(4/5) = 0: System.out.pr ...

  10. java的几个概念AOP、IOC、DI、DIP、工厂模式、IOC容器

    1.AOP:面向切面编程 把一些公共类,比如日志类.安全类.数据库连接类.系统统一的认证.权限管理类.资源池(如数据库连接池的管理).性能监控等做成一个公共类,当其他类需要时,进行注入(调用).这样这 ...