公共成員函式
<future>

std::future::wait_until

template <class Clock, class Duration>  future_status wait_until (const chrono::time_point<Clock,Duration>& abs_time) const;
等到某個時間點
最多等到 abs_time,直到 共享狀態就緒

如果 共享狀態 尚未 就緒(即,提供者尚未設定其值或異常),則該函式將阻塞呼叫執行緒,並等待直到 就緒 或直到 abs_time,以先到者為準。

當函式因 共享狀態 變為 就緒 而返回時,共享狀態 上設定的值或異常不會被讀取,但所有可見的副作用將在提供者使 共享狀態 就緒的點與此函式返回之間同步。

如果 共享狀態 包含一個 延遲函式(例如 async 返回的 future 物件),則該函式不會阻塞,而是立即返回 future_status::deferred 的值。

引數

abs_time
一個時間點,函式將在該時間點強制返回,恢復呼叫執行緒的執行。
請注意,多執行緒管理操作可能會導致超過此時間的延遲。
time_point 是表示特定絕對時間的物件。

返回值

一個 future_status 型別的值,指示導致函式返回的原因
描述
future_status::ready共享狀態 已就緒:生產者已設定值或異常。
future_status::timeout函式一直等到 abs_time,而 共享狀態 未變為就緒。
future_status::deferred共享狀態 包含 延遲函式

資料競爭

訪問了 future 物件。
共享狀態 作為 原子操作 被訪問(不會導致資料競爭)。

異常安全

有效future 物件上呼叫此成員函式會產生 未定義行為(儘管庫實現可能會檢測到此行為並丟擲帶有 no_state 錯誤條件future_error,提供強保證)。

如果與 abs_time 相關的操作丟擲異常,則此函式可能丟擲異常(請注意,在 <chrono> 中提供的標準 時鐘持續時間 型別上的操作永遠不會丟擲)。

另見