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

问题描述 投票:8回答:2

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

c++ macos sleep
2个回答
18
投票

编辑2017:C ++ 11 sleep_for是这样做的正确方法。请参阅Xornad's answer, below


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
}

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

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


13
投票

如果您的编译器支持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;
}
© www.soinside.com 2019 - 2024. All rights reserved.