Sleep
Sleep函数属于Windows API,使用它需要先包含synchapi.h
。
void Sleep(DWORD dwMilliseconds);
函数仅有一个参数(睡眠时长),单位是毫秒。
参考Microsoft Docs
usleep
仅在Linux平台可用,使用它需要先包含unistd.h
。
int usleep(useconds_t usec);
函数仅有一个参数(睡眠时长),单位是微秒。该数值最大不超过1000000微秒(也就是1秒)。
参考Linux and UNIX Man Pages
sleep_for
template <class Rep, class Period>
void sleep_for02(const chrono::duration<Rep,Period>& rel_time);
函数sleep_for与前两个函数一样,都只有一个参数指明睡眠时长。稍显复杂的是,这个参数rel_time
的单位取决于用户。
看官方例程:
// this_thread::sleep_for example
#include <iostream> // std::cout, std::endl
#include <thread> // std::this_thread::sleep_for
#include <chrono> // std::chrono::seconds
int main()
{
std::cout << "countdown:\n";
for (int i=10; i>0; --i) {
std::cout << i << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(1));
}
std::cout << "Lift off!\n";
return 0;
}
代码中使用std::chrono::seconds(1)
表示1秒,同理可以用std::chrono::milliseconds(1000)
来表示。