共用方式為


<future>

包含標準標頭<未來>定義樣板類別並支援能夠簡化執行程式的樣板—很可能是分開的執行緒—和接收結果。 結果是由函式傳回的值或是函式發出的例外狀況,但此狀況並非在函式中發現。

此標題使用並行執行階段 (ConcRT),以便與其他 ConcRT 機制一起使用。 如需 ConcRT 的詳細資訊,請參閱並行執行階段

#include <future>

備註

注意事項注意事項

/clr/clr:pure 編譯的程式碼,這個標題會封鎖。

非同步提供者 儲存函式呼叫的結果。 非同步傳回物件 用來擷取函式呼叫的結果。 有相關聯的非同步狀態 提供非同步提供者和一或多個非同步傳回物件之間的通訊。

程式不會直接建立任何相關聯的非同步狀態物件。 程式會建立非同步提供者,當它需要建立一個非同步傳回物件,且此物件享有其提供者的關聯性同步狀態。 非同步提供者和非同步傳回物件處理保留它們共用關聯的非同步狀態物件。 當參考這個關聯非同步狀態的最後一個物件釋放時,這個物件相關聯的非同步狀態終結。

非同步提供者或沒有相關聯的非同步傳回物件狀態是 空的 (empty)。

只有在非同步提供者儲存傳回值或儲存例外狀況後,關聯的非同步狀態才會成為就緒。

樣板函式 async 和樣板類別 promisepackaged_task 都是非同步提供者。 樣板類別 futureshared_future 描述非同步傳回物件。

每個範本 promisefuture,和 shared_future 具有型別 void 也有部分儲存特製化和接收參考的值。 這些特製化與主要只範本有儲存和擷取傳回值的函式簽章和語意。

樣板類別 futureshared_future 在其解構函式永遠不會封鎖,除了提供回溯相容性 (Backward Compatibility) 儲存的一種情況:不同於其他未來,,以 future—或— shared_future最後一個附加至工作啟動以 std::async,解構函式區塊,如果工作未完成;即會封鎖,則執行緒未呼叫 .get().wait() 和工作仍在執行中。 下列可用性附註已加入至 std::async的標準草稿中 :「[注意:如果未來從 std::async 移至地區範圍時,使用未來的其他程式碼須注意未來可能對共享狀態造成封鎖的解構函式可能潛藏其中。—結束註解]」在其他情況下, futureshared_future 解構函式要求並保證封鎖永遠不會發生。

成員

類別

Name

說明

future 類別

描述一個非同步傳回物件。

future_error 類別

描述一個可以用型別方法傳回處理 future 物件的例外狀況物件。

packaged_task 類別

描述一個為呼叫包裝含式的非同步提供者,其呼叫簽章是 Ty(ArgTypes...)。 除了潛在的結果之外,其與非同步狀態的相關聯擁有物件的可呼叫複本。

promise 類別

描述一個非同步提供者。

shared_future 類別

描述一個非同步傳回物件。 與 future 物件相比,非同步提供者可以與任何數目的 shared_future 物件相關聯。

結構

Name

說明

is_error_code_enum 結構

表示 future_errc 的特製化適用於儲存 error_code

uses_allocator 結構

一律套用於特製化。

函式

Name

說明

async 函式

表示非同步提供者。

future_category 函式

傳回對 Draw 錯誤與 future 物件相關聯之 error_category 物件的參考。

make_error_code 函式

建立具有 error_codeerror_category物件,且此物件繪製 future 錯誤 。

make_error_condition 函式

建立具有 error_conditionerror_category物件,且此物件繪製 future 錯誤 。

swap 函式 (<future>)

與另一個物件交換一個 promise 相關聯的非同步狀態。

列舉

Name

說明

future_errc 列舉

future_error 類別所報告的錯誤提供符號名稱。

future_status 列舉

一個需要時間等候的函式回傳提供符號名稱。

launch 列舉

表示描述樣板函式的 async可能方法位元遮罩型別。

請參閱

其他資源

C++ 標準程式庫標頭檔