我想暂停执行c ++程序5秒钟。在Android Handler.postDelayed具有我想要的功能。有没有类似于c ++的内容?
答案 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:chrono
或std::this_thread
(它们稍有不同),则可以消除此问题。
大多数操作系统的C api包含一些像睡眠功能,虽然它也可能不同。例如,在posixen上,标准C库中有sleep()
API调用,您也可以在C ++中使用它:
#include <unistd.h>
int main() {
sleep(5);
return;
}
或者你可以使用usleep()
你想要更精确的秒数。 usleep()
可以睡眠精确到微秒。
在Windows上,您可以使用大{'{1}}'的Sleep(int usec)
调用,并使用毫秒。