[C++]C++中的延时方法总结
Posted FL1623863129
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[C++]C++中的延时方法总结相关的知识,希望对你有一定的参考价值。
在windows上延时
#include <iostream>
#include <windows.h>
using namespace std;
void main()
//睡眠5秒再输出
Sleep(5000);//单位是毫秒
std::cout << "over!" << std::endl;
在linux上
#include <iostream>
#include <unistd.h>
using namespace std;
int main()
//5秒后输出
sleep(5);
std::cout << "hello!" << std::endl;
//3000000微妙(相当于3秒)输出
usleep(3000000);
std::cout << "over!" << std::endl;
return 0;
C++11中std线程也提供了延时
#include <iostream>
#include <chrono>
#include <thread>
int main()
std::cout << "Hello waiter\\n" << std::flush;
auto start = std::chrono::high_resolution_clock::now();
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
auto end = std::chrono::high_resolution_clock::now();
std::chrono::duration<double, std::milli> elapsed = end-start;
std::cout << "Waited " << elapsed.count() << " ms\\n";
std::this_thread::sleep_for(std::chrono::milliseconds(100));
更加精确地延时:
#include <chrono>
void delay(int timeout_ms)
auto start = std::chrono::system_clock::now();
while (true)
auto duration =
std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now() - start).count();
if (duration > timeout_ms)
LOGGING_ERROR("timeout occurred,timeout %d ms", timeout_ms);
break;
以上是关于[C++]C++中的延时方法总结的主要内容,如果未能解决你的问题,请参考以下文章