在C++中,wait_for
函數通常用于等待一個特定時間段,直到一個條件變為真。該函數接受一個超時時間參數,并在超時時間到達或條件滿足時返回。
wait_for
函數的用法如下:
std::future_status status = my_future.wait_for(std::chrono::seconds(5));
if (status == std::future_status::ready) {
// 條件已滿足
// 處理結果
auto result = my_future.get();
} else if (status == std::future_status::timeout) {
// 超時處理邏輯
// 可以拋出異常或者進行其他操作
} else if (status == std::future_status::deferred) {
// 線程被延遲執行
}
在上面的示例中,wait_for
函數會等待my_future
中的結果達到ready狀態,最多等待5秒。如果在5秒內條件滿足,將獲取結果并繼續執行后續操作;如果超時,則執行相應的超時處理邏輯;如果線程被延遲執行,則執行相應的邏輯。
需要注意的是,wait_for
函數只是等待一個特定時間段,并不會阻塞當前線程。