我知道POSIX休眠(x)函数使程序休眠x秒。C++中是否有一个函数可以让程序休眠x毫秒?
当前回答
如果使用MS Visual C++10.0,则可以使用标准库工具执行此操作:
Concurrency::wait(milliseconds);
您需要:
#include <concrt.h>
其他回答
#include <windows.h>
语法:
Sleep ( __in DWORD dwMilliseconds );
用法:
Sleep (1000); //Sleeps for 1000 ms or 1 sec
如果使用MS Visual C++10.0,则可以使用标准库工具执行此操作:
Concurrency::wait(milliseconds);
您需要:
#include <concrt.h>
一个答案的优雅解决方案,有点修改。。如果没有更好的功能可用,可以很容易地添加select()用法。只需生成使用select()等的函数。。
代码:
#include <iostream>
/*
Prepare defines for millisecond sleep function that is cross-platform
*/
#ifdef _WIN32
# include <Windows.h>
# define sleep_function_name Sleep
# define sleep_time_multiplier_for_ms 1
#else
# include <unistd.h>
# define sleep_function_name usleep
# define sleep_time_multiplier_for_ms 1000
#endif
/* Cross platform millisecond sleep */
void cross_platform_sleep_ms(unsigned long int time_to_sleep_in_ms)
{
sleep_function_name ( sleep_time_multiplier_for_ms * time_to_sleep_in_ms );
}
选择调用是一种提高精度的方法(睡眠时间可以以纳秒为单位)。
在C++11中,您可以使用标准库设施来实现这一点:
#include <chrono>
#include <thread>
std::this_thread::sleep_for(std::chrono::milliseconds(x));
清晰易读,无需猜测sleep()函数使用的单位。
推荐文章
- 为什么这个结合赋值和相等检查的if语句返回true?
- 如何找到Java堆大小和内存使用(Linux)?
- 遍历带空格的文件列表
- cplusplus.com给出的错误、误解或坏建议是什么?
- Bash:无限睡眠(无限阻塞)
- 如何使Python脚本在Linux中像服务或守护进程一样运行
- 找出质数最快的算法是什么?
- 如何使用文件的行作为命令的参数?
- time_t最终的类型定义是什么?
- c++枚举类可以有方法吗?
- 格式化IO函数(*printf / *scanf)中的转换说明符%i和%d之间的区别是什么?
- 将析构函数设为私有有什么用?
- main()中的Return语句vs exit()
- 为什么c#不提供c++风格的'friend'关键字?
- 如何使用cut为分隔符指定更多的空格?