std::this_thread::sleep_until


頭文件:<thread>                  (C++11)

template<class Clock, class Duration>

void sleep_until(const std::chrono::time_point<Clock, Duration>& sleep_time);

作用:

阻塞當前正在執行的線程直到sleep_time溢出。

sleep_time是和時鍾相關聯的,也就是要注意時鍾調整會影響到sleep_time。因此,

時鍾的時長有可能或沒有可能會短於或長於sleep_time。Clock::now()返回調用這個函數時的時間,取決於調整方向。該函數也有可能因為調度或者資源競爭而導致阻塞時間延長到sleep_time溢出之后。

參數:

sleep_time 阻塞時長

返回值:

none

異常:

任何從Clock或Duration拋出的異常(由標准庫提供的時鍾和時長從來都不會拋出異常)

實例:

 1 #include <iostream>  
 2 #include <iomanip>  
 3 #include <chrono>  
 4 #include <ctime>  
 5 #include <thread>  
 6 #pragma warning(disable:4996)//加上可去掉unsafe 請使用localtime_s的編譯報錯  
 7 int main()  
 8 {  
 9     using std::chrono::system_clock;  
10     std::time_t tt = system_clock::to_time_t(system_clock::now());  
11     struct std::tm *ptm = std::localtime(&tt);  
12     std::cout << "Current time: " << std::put_time(ptm, "%X") << '\n'; //必須大寫X,若小寫x,輸出的為日期  
13     std::cout << "Waiting for the next minute to begin...\n";  
14     ++ptm->tm_min;   
15     ptm->tm_sec = 0;  
16     std::this_thread::sleep_until(system_clock::from_time_t(mktime(ptm)));  
17     std::cout << std::put_time(ptm, "%X") << "reached!\n";  
18     getchar();  
19     return 0;  
20 }  

結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM