在c ++中暂停程序执行5秒

时间:2014-05-12 12:48:02

标签: c++

我想暂停执行c ++程序5秒钟。在Android Handler.postDelayed具有我想要的功能。有没有类似于c ++的内容?

2 个答案:

答案 0 :(得分:21)

#include <iostream>
#include <chrono>
#include <thread>

int main()
{
    std::cout << "Hello waiter" << std::endl;
    std::chrono::seconds dura( 5);
    std::this_thread::sleep_for( dura );
    std::cout << "Waited 5s\n";
}

this_thread::sleep_for阻止当前线程执行至少指定的sleep_duration。

答案 1 :(得分:3)

你可以在纯C级别上使用它,因为C api调用也可以从C ++中使用。如果您的实际c ++库未包含所需的std:chronostd::this_thread(它们稍有不同),则可以消除此问题。

大多数操作系统的C api包含一些像睡眠功能,虽然它也可能不同。例如,在posixen上,标准C库中有sleep() API调用,您也可以在C ++中使用它:

#include <unistd.h>

int main() {
   sleep(5);
   return;
}

或者你可以使用usleep()你想要更精确的秒数。 usleep()可以睡眠精确到微秒。

在Windows上,您可以使用大{'{1}}'的Sleep(int usec)调用,并使用毫秒。