在c++中进行睡眠操作,平台:windows
Sleep operation in C++, platform : windows
我想以毫秒为单位执行上述操作。我应该选择哪个库和函数调用?
泰。或者如果您使用的是Visual Studio 2010(或其他支持c++0x的编译器),请使用
#include <thread>
#include <chrono>
std::this_thread::sleep();
// or
std::this_thread::sleep_for(std::chrono::milliseconds(10));
对于旧的编译器,您可以使用相关的Boost库
来获得相同的便利。不用说这里的主要好处是可移植性和易于将延迟参数转换为"人"单位
可以使用Win32 API中的Sleep函数
Windows任务调度程序的粒度远远超过1ms(通常为20ms)。您可以通过使用性能计数器来测量在Sleep()
函数中实际花费的时间来测试这一点。(使用QueryPerformanceFrequency()
和QueryPerformanceCounter()
可以测量到纳秒级的时间)。注意,Sleep(0)
使线程休眠的时间尽可能短。
timeBeginPeriod()
并传递1ms周期来更改行为。现在Sleep(0)
应该返回更快。
注意,这个函数调用是为了以更好的精度播放多媒体流。我从来没有任何问题使用这个,但需要这么快的时期是相当罕见的。根据您想要达到的目标,可能有更好的方法来获得您想要的准确性,而不需要使用这种"hack"。
呃,sleep()函数从win32 api?
http://msdn.microsoft.com/en-us/library/windows/desktop/ms686298%28v=vs.85%29.aspx相关文章:
- 正在查找文档以获得PS4平台的C++中的设备信息
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 重载操作程序时出错>>用于类中的字符串 memebr
- 对字符串进行位操作
- 我可以在 C++ 中的函数体之外进行操作吗?
- MPI突然停止了对多个核心的操作
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 对字符数组中的元素执行逐位操作
- 如何在directx/c++中进行平移/缩放操作
- 逐位操作的隐式类型转换
- 为什么一个向量上的多线程操作很慢
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 位移操作和位掩码未检测到重复字符
- 如何进行特定的位操作?
- 当我们进行一些操作时,应该使用什么'std::string'或'std::stringstream'?
- 尚未操作的 32 位规范化浮点数在任何平台/编译器上是否相同?
- 映射平台特定的可互操作类型
- 在所有平台上触发操作需要一致的调试常量
- 在c++中进行睡眠操作,平台:windows
- c++字符串操作,适用于iOS和Android平台