建議使用 Visual Studio 2017

promise 類別

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

描述非同步提供者

template <class Ty>
class promise;

公用建構函式

名稱說明
promise:: promise 建構函式建構 promise 物件。

公用方法

名稱描述
promise:: get_future 方法傳回未來這項承諾相關聯。
promise:: set_exception 方法以不可部分完成的方式設定這項承諾的結果以指出例外狀況。
promise:: set_exception_at_thread_exit 方法以不可部分完成的方式設定這項承諾的結果以指出例外狀況,而且只有在目前執行緒中所有執行緒區域物件已終結後 (通常是在執行緒結束) 傳遞通知。
promise:: set_value 方法以不可部分完成的方式設定這項承諾的結果以指出值。
promise:: set_value_at_thread_exit 方法以不可部分完成的方式設定這項承諾的結果以指出值,而且只有在目前執行緒中所有執行緒區域物件已終結後 (通常是在執行緒結束) 傳遞通知。
promise:: swap 方法交換相關聯的非同步狀態這個承諾與指定之的承諾物件。

公用運算子

名稱說明
promise:: operator =這個承諾物件共用狀態的指派。

promise

標頭︰未來

命名空間: std

傳回未來物件具有相同相關聯的非同步狀態和這個承諾。

future<Ty> get_future();

備註

如果承諾物件是空的這個方法會擲回future_error具有error_codeno_state

如果已經針對具有同一個相關聯的非同步狀態的承諾物件呼叫這個方法,方法會擲回 future_errorerror_codefuture_already_retrieved

傳輸相關聯的非同步狀態指定promise物件。

promise& operator=(promise&& Other) noexcept;

參數

Other
promise 物件。

傳回值

*this

備註

這個運算子轉移關聯的非同步狀態從Other。 在傳輸中之後,Other

建構 promise 物件。

promise();

template <class Alloc>
promise(
    allocator_arg_t,
 const Alloc& Al);

promise(
    promise&& Other) noexcept;

參數

Al
記憶體配置器。 請參閱 <> > 如需詳細資訊。

Other
promise 物件。

備註

第一個建構函式建構promise物件。

第二個建構函式會建構空promise物件,並使用Al記憶體配置。

第三個建構函式建構promise物件與傳輸相關聯的非同步狀態從Other,並將保留Other空白。

自動將例外狀況儲存的結果為promise物件,然後設定相關聯的非同步狀態準備

void set_exception(exception_ptr Exc);

參數

Exc
Exception_ptr以此方式儲存為例外狀況的結果。

備註

如果promise物件有關聯的非同步狀態,這個方法會擲回future_error有錯誤碼的no_state

如果set_exceptionset_exception_at_thread_exitset_value,或set_value_at_thread_exit已經針對呼叫promise具有相同的物件相關聯的非同步狀態,這個方法會擲回future_error有錯誤碼的promise_already_satisfied

因為這種方法,而所有被封鎖於關聯非同步狀態的執行緒會變成解除封鎖。

以不可部分完成方式設定這個 promise 的結果以指出例外狀況,而且只有在目前執行緒中所有執行緒區域物件已終結後 (通常是在執行緒結束) 傳遞通知。

void set_exception_at_thread_exit(exception_ptr Exc);

參數

Exc
Exception_ptr以此方式儲存為例外狀況的結果。

備註

如果 promise 物件沒有相關聯的非同步狀態,這個方法會擲回future_error有錯誤碼的no_state

如果set_exceptionset_exception_at_thread_exitset_value,或set_value_at_thread_exit已經針對呼叫promise具有相同的物件相關聯的非同步狀態,這個方法會擲回future_error有錯誤碼的promise_already_satisfied

相對於set_exception,這個方法不會設定相關聯的非同步狀態設為就緒直到目前的執行緒中之後,所有執行緒區域物件已終結。 通常,除非目前的執行緒結束,否則被封鎖於關聯非同步狀態的執行緒不會解除封鎖。

自動儲存的值做為這個結果promise物件,然後設定相關聯的非同步狀態準備

void promise::set_value(const Ty& Val);

void promise::set_value(Ty&& Val);

void promise<Ty&>::set_value(Ty& Val);

void promise<void>::set_value();

參數

Val
要儲存為結果的值。

備註

如果promise物件有關聯的非同步狀態,這個方法會擲回future_error有錯誤碼的no_state

如果set_exceptionset_exception_at_thread_exitset_value,或set_value_at_thread_exit已經針對呼叫promise具有相同的物件相關聯的非同步狀態,這個方法會擲回future_error有錯誤碼的promise_already_satisfied

因為這種方法,而所有被封鎖於關聯非同步狀態的執行緒會變成解除封鎖。

第一種方法也會擲回任何例外狀況時擲回Val複製到關聯的非同步狀態。 在此情況下,未設定關聯的非同步狀態來準備。

第二種方法也會擲回任何例外狀況時擲回Val移至相關聯的非同步狀態。 在此情況下,未設定關聯的非同步狀態來準備。

部分特製化的promise<Ty&>,儲存的值實際上是參考Val

特殊化promise<void>,預存的值不存在。

自動儲存的值做為這個結果promise物件。

void promise::set_value_at_thread_exit(const Ty& Val);

void promise::set_value_at_thread_exit(Ty&& Val);

void promise<Ty&>::set_value_at_thread_exit(Ty& Val);

void promise<void>::set_value_at_thread_exit();

參數

Val
要儲存為結果的值。

備註

如果 promise 物件沒有相關聯的非同步狀態,這個方法會擲回future_error有錯誤碼的no_state

如果set_exceptionset_exception_at_thread_exitset_value,或set_value_at_thread_exit已經針對呼叫promise具有相同的物件相關聯的非同步狀態,這個方法會擲回future_error有錯誤碼的promise_already_satisfied

相對於set_value,關聯的非同步狀態未設定為備妥之後,直到目前的執行緒中之後,所有執行緒區域物件已終結。 通常,除非目前的執行緒結束,否則被封鎖於關聯非同步狀態的執行緒不會解除封鎖。

第一種方法也會擲回任何例外狀況時擲回Val複製到關聯的非同步狀態。

第二種方法也會擲回任何例外狀況時擲回Val移至相關聯的非同步狀態。

部分特製化的promise<Ty&>,儲存的值實際上是參考Val

特殊化promise<void>,預存的值不存在。

交換相關聯的非同步狀態的這個承諾物件與所指定的物件。

void swap(promise& Other) noexcept;

參數

Other
promise 物件。

標頭檔參考

顯示: