在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; } }