【发布时间】:2014-05-12 12:48:01
【问题描述】:
我想暂停 c++ 程序的执行 5 秒。在android Handler.postDelayed 具有我正在寻找的所需功能。 c++中有没有类似的东西?
【问题讨论】:
-
#include
unsigned int sleep(unsigned int seconds); -
请问您为什么要暂停程序?有时,存在有意义/更好的替代方案。
标签: c++
我想暂停 c++ 程序的执行 5 秒。在android Handler.postDelayed 具有我正在寻找的所需功能。 c++中有没有类似的东西?
【问题讨论】:
标签: c++
#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 内阻止当前线程的执行。
【讨论】:
sleep() 是不是标准C。
您可以在纯 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 上,您可以使用 Sleep(int usec) 调用,它带有大的“S”,使用毫秒。
【讨论】: