【vc】高精度时间函数的使用
2024-09-06 18:24:49
方法一:
函数定义如下:
int UsSleep(int us);//返回实际的微秒延时时间
代码实现如下:
//参数一表示 需要等待的时间 微秒为单位
int UsSleep(int us)
{
//储存计数的联合
LARGE_INTEGER fre;
//获取硬件支持的高精度计数器的频率
if (QueryPerformanceFrequency(&fre))
{
LARGE_INTEGER run,priv,curr,res;
run.QuadPart = fre.QuadPart * us / ;//转换为微妙级
//获取高精度计数器数值
QueryPerformanceCounter(&priv);
do
{
QueryPerformanceCounter(&curr);
} while (curr.QuadPart - priv.QuadPart < run.QuadPart);
curr.QuadPart -= priv.QuadPart;
int nres = (curr.QuadPart * / fre.QuadPart);//实际使用微秒时间
return nres;
}
return -;//返回错误值。
}
在实际的使用过程中方法时间误差在1微秒。
方法二:
timeBeginPeriod(); Sleep(); DWORD dwTime = ::timeGetTime(); timeEndPeriod();
被包含在timeBeginPeriod和timeEndPeriod里面的Sleep和timeGetTime的
时间精度就是1ms,出了period函数对,还是原来的时间精度。
这么说你就应该懂了,当你需要时间精度为1ms时,就写个period函数对。
这2个period函数一般是成对出现。
参考:
Windows微秒级定时方法
windows开发,如何使Sleep函数精确到1毫秒
最新文章
- TokuDB 引擎安装测试
- php的时间输出格式
- pdflatex, xelatex, texstudio中文编码问题
- 关于 pgsql 数据库json几个函数用法的效率测试
- JUnit 单元测试 配置
- 《Code Complete》ch.24 重构
- OC:方法
- 密码加密md5和sha
- WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
- Linux Shell编程参考大全
- UIScrollView&;nbsp;UIPageViewControlle…
- 【XSY2612】Comb Avoiding Trees 生成函数 多项式求逆 矩阵快速幂
- IE内核浏览器的404页面问题和IE自动缓存引发的问题
- javascript NaN注意事项
- C#中引用第三方ocx控件引发的问题以及解决办法
- XPath and TXmlDocument
- CSS属性display的浅略探讨
- Python标准库笔记(8) — pprint模块
- docker stack 部署容器监控方案(cAdvisor、Prometheus、Grafana)
- 移动端HTML5实现文件上传