如何在C ++中添加代码延迟。

时间:2017-09-15 02:15:01

标签: c++ delay

我想添加延迟以便一行运行,然后在短暂延迟后运行第二行。我对C ++很新,所以我不确定如何做到这一点。理想情况下,在下面的代码中,它将打印“正在加载...”并等待至少1-2秒,然后再次打印“正在加载...”。目前它可以即时打印而不是等待。

cout << "Loading..." << endl;
// The delay would be between these two lines. 
cout << "Loading..." << endl; 

4 个答案:

答案 0 :(得分:6)

在c ++ 11中,您可以使用此线程和crono来执行此操作:

#include <chrono>
#include <thread>
...
using namespace std::chrono_literals;
...
std::this_thread::sleep_for(2s);

答案 1 :(得分:0)

在windons OS中

#include <windows.h>
Sleep( sometime_in_millisecs );   // note uppercase S

在Unix基础OS中

#include <unistd.h>
unsigned int sleep(unsigned int seconds);

#include <unistd.h>
int usleep(useconds_t usec); // Note usleep - suspend execution for microsecond intervals

答案 2 :(得分:0)

要模拟“正在进行的工作报告”,您可以考虑:

// start thread to do some work
m_thread = std::thread( work, std::ref(*this)); 

// work-in-progress report
std::cout << "\n\n  ... " << std::flush;
for (int i=0; i<10; ++i)  // for 10 seconds
{
   std::this_thread::sleep_for(1s); // 
   std::cout << (9-i) << '_' << std::flush; // count-down
}

m_work = false; // command thread to end
m_thread.join(); // wait for it to end

输出:

  

... 9_8_7_6_5_4_3_2_1_0 _

     

10,175,240我们之后放弃的工作

概述:方法&#39>工作&#39;没有完成&#39;但收到了放弃操作的命令并在超时时退出。 (成功的测试)

代码使用chrono和chrono_literals。

答案 3 :(得分:-1)

您需要来自sleep(unsigned int seconds)的{​​{1}}功能。在unistd.h语句之间调用此函数。