C++11マルチスレッド(九):promise用法詳細
725 ワード
std::promiseは値をパッケージしてデータとfutureをバインドし、スレッド関数の値を取得するのに便利で、値を取るのはpromise内部で提供されたfutureによって間接的に取得されます.promiseの主な目的は「Set」操作を提供し,futureのget()に対応することである.
promiseヘッダファイルは以下の通りです.
set_value関数
共有状態の値を設定し、promiseの共有状態フラグがreadyになります.
set_Exception関数
promiseに異常を設定し、その後promiseの共有ステータスフラグがreadyになります.
promiseヘッダファイルは以下の通りです.
#include
using namespace std;
set_value関数
void set_value(_Ty&& _Val)
{ // store result
_MyPromise._Get_state_for_set()._Set_value(
_STD forward<_ty>(_Val), false);
}
共有状態の値を設定し、promiseの共有状態フラグがreadyになります.
set_Exception関数
void set_exception(_XSTD exception_ptr _Exc)
{ // store result
_MyPromise._Get_state_for_set()._Set_exception(_Exc, false);
}
promiseに異常を設定し、その後promiseの共有ステータスフラグがreadyになります.