/ * * @fileのpackaged_task.cpp * @note * @brief * @author * @date 2019年8月15日 * @note * @history * @warning * / // packaged_task例 の#include <iostreamの> // のstd :: COUT の#include <未来> // はstd :: packaged_task、STD ::将来 の#include <クロノ> // はstd ::クロノ::秒 の#include <スレッド> // はstd ::スレッド、のstd :: this_thread :: sleep_for // 各値の秒を取ってカウントダウン: int型のカウントダウン(int型 から、int型){ のために(int型 I = から ; I =へ;! - I){ のstd :: coutの << I << ' \ nを' ; std :: this_thread :: sleep_for(STD ::クロノ::ミリ秒(10 )); } のstd :: coutの << " !\ nはオフに持ち上げ" 。 返す から - に。 } int型のmain() { のstd :: packaged_task < 整数(INT、INT)> TSK(カウントダウン)。 // 設定packaged_task std ::将来< 整数 > RET = tsk.get_future(); // 将来の取得 (STD ::移動(TSK)、目のstd ::スレッド10、0); // 10から0にカウントダウンするのspawnスレッド // ... int型の値= RET。取得(); // 終了し、結果を取得するためにタスクを待つ のstd :: coutの << 「カウントダウンが続いた」値<< << 「秒\ n個。」; th.join(); リターン 0 ; }