wait_for
是C++標準庫 <chrono>
中的一個函數,用于等待一個給定的時間間隔。它接受兩個參數:一個表示等待時間的 std::chrono::duration
對象,以及一個表示是否應該繼續等待的布爾值(通常命名為 is_timeout
)。如果 is_timeout
為 true
,則當指定的時間間隔過去后,wait_for
將返回;如果為 false
,則 wait_for
將一直等待,直到某個條件滿足為止。
下面是一個簡單的示例,演示了如何使用 wait_for
函數:
#include <iostream>
#include <chrono>
#include <thread>
int main() {
std::cout << "Waiting for 5 seconds...\n";
// 等待5秒鐘
auto result = std::chrono::system_clock::now();
std::this_thread::sleep_for(std::chrono::seconds(5));
auto end = std::chrono::system_clock::now();
std::chrono::duration<double> elapsed = end - result;
if (elapsed.count() >= 5) {
std::cout << "5 seconds have passed.\n";
} else {
std::cout << "Time has not passed yet.\n";
}
return 0;
}
在這個示例中,我們使用 std::this_thread::sleep_for
函數使當前線程休眠5秒鐘。然后,我們使用 std::chrono::system_clock::now()
獲取當前時間,并計算經過的時間。最后,我們根據經過的時間判斷是否已經等待了5秒鐘。