packaged_task

 

/ * * @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 < 整数INTINT)> TSK(カウントダウン)。   // 設定packaged_task
    std ::将来< 整数 > RET = tsk.get_future();            // 将来の取得

    (STD ::移動(TSK)、目のstd ::スレッド100);   // 10から0にカウントダウンするのspawnスレッド

    // ... 

    int型の値= RET。取得();                  // 終了し、結果を取得するためにタスクを待つ

    のstd :: coutの << カウントダウンが続いた値<< << 秒\ n個。; 

    th.join(); 

    リターン 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/guxuanqing/p/11360581.html