公有成員函式
<future>

std::shared_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 為止。

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

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

如果 共享狀態 包含 延遲函式,則該函式不阻塞,並立即以 future_status::deferred 的值返回。

引數

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

返回值

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

資料競爭

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

異常安全

shared_future 物件呼叫此成員函式,而該物件 無效,將產生 未定義行為(儘管庫實現可能會檢測到這一點並丟擲 future_error,其 no_state 錯誤條件,提供強保證)。

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

另見