OS X上的C++中的睡眠操作

m_j*_*m_j 8 c++ macos sleep

我想以毫秒为单位执行上述操作.我更喜欢哪个库和函数调用?

NHD*_*aly 19

编辑2017:C++ 11 sleep_for是正确的方法.请参阅下面Xornad的回答.


C++ 03:

由于Mac OS X是基于Unix的,因此您几乎总能使用标准的Linux功能!

在这种情况下,您可以使用usleep(以微秒为单位的时间)并将您的毫秒乘以1000以获得微秒.

#include <unistd.h>
int main () {
    usleep(1000); // will sleep for 1 ms
    usleep(1); // will sleep for 0.001 ms
    usleep(1000000); // will sleep for 1 s
}
Run Code Online (Sandbox Code Playgroud)

有关此功能的更多信息,请查看Linux手册页:

http://linux.die.net/man/3/usleep


Xor*_*and 14

如果您的编译器支持C++ 11,则可以使用sleep_for并避免使用特定于操作系统的API.(http://en.cppreference.com/w/cpp/thread/sleep_for)

#include <thread>
#include <chrono>

int main()
{
    std::this_thread::sleep_for(std::chrono::milliseconds(1000));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)