用C++写一份以毫秒为单位的延时函数

目前,C++标准库并没有关于延时的函数,不同的操作系统有不同的头文件用来实现延时,比如Linux的unistd.h里的sleep和Windows里的windows.h里的Sleep,然而今天我发现,usleep和_sleep全被打上了[deprecate]属性,也就是说不建议使用。所以,我们用C++标准库来实现以毫秒为单位的延时函数

原理

其实原理很简单
我们假设毫秒参数为 ms
记录时间为 t
循环 (记录时间 - t) = h
如果 h == ms 退出循环并结束这个函数
C++标准库里有一个ctime头文件,用来获取当前时间的clock_t对象,相减得到时间差

源码

1
2
3
4
void delay(unsigned long ms) {
clock_t now = clock();
while(clock() - now < ms);
}

到时候直接写

1
delay(500); //延时500毫秒

如有错误 请联系qaralotte@gmail.com
敬请雅正:)