10

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

4

3 回答 3

22

编辑 2017:C++11sleep_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
}

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

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

于 2013-10-18T02:14:49.693 回答
15

如果您的编译器支持 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;
}
于 2013-10-18T09:59:15.400 回答
0

请只使用睡眠(整数或数字),除非您需要纳秒或微秒

于 2020-12-03T00:08:07.087 回答