admin管理员组文章数量:1530518
2024年5月18日发(作者:)
介绍
我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们
需要一个定时器,定时执 行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用
到时间函数。还比如我们通过记录函数或者算法开始和截至的时间,然后利用两者之差得
出函数或者 算法的运行时间。编译器和操作系统为我们提供了很多时间函数,这些时间函
数的精度也是各不相同的,所以,如果我们想得到准确的结果,必须使用合适的时间函 数。
现在我就介绍windows下的几种常用时间函数。
1:Sleep函数
使用:sleep(1000),在Windows和Linux下1000代表的含义并不相同,Windows
下的表示1000毫秒,也就是1秒钟;Linux下表示1000秒,Linux下使用毫秒级别的函
数可以使用usleep。
原理:sleep函数是使调用sleep函数的线程休眠,线程主动放弃时间片。当经过指
定的时间间隔后,再启动线程,继续执行代码。Sleep函数并不能起到定时的作用,主要
作用是延时。在一些多线程中可能会看到sleep(0);其主要目的是让出时间片。
精度:sleep函数的精度非常低,当系统越忙它精度也就越低,有时候我们休眠1秒,
可能3秒后才能继续执行。它的精度取决于线程自身优先级、其他线程的优先级,以及线
程的数量等因素。
2:MFC下的timer事件
使用:1.调用函数SetTimer()设置定时间隔,如SetTimer(0,100,NULL)即为设置
100毫秒的时间间隔;2.在应用程序中增加定时响应函数OnTimer(),并在该函数中添加
响应的处理语句,用来完成时间到时的操作。
原理:同sleep函数一样。不同的是timer是一个定时器,可以指定回调函数,默认
为OnTimer()函数。
精度:timer事件的精度范围在毫米级别,系统越忙其精度也就越差。
3:C语言下的Time
使用:time_t t;time(&t);Time函数是获取当前时间。
原理:time函数主要用于获取当前时间,比如我们做一个电子时钟程序,就可以使用
此函数,获取系统当前的时间。
精度:秒级别
4:COM对象中的COleDateTime,COleDateTimeSpan类
使用:COleDateTime start_time = COleDateTime::GetCurrentTime();
COleDateTimeSpan end_time = COleDateTime::GetCurrentTime()-start_time;
While(end_alSeconds() < 2)
版权声明:本文标题:c++获取windows时间的方法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1716046618a483434.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论