以package線程包,封裝函數的方式,使一個函數通常(但不一定)運行於某一分離線程中:
#include<thread>
#include<future>
#include<iostream>
using std::cout;
using std::endl;
double calc(double x, double y)
{
return x + y;
}
int main()
{
std::packaged_task<double(double, double)> task(calc);//用package線程 包裝函數;
std::future<double>f = task.get_future();
task(7.0, 2.5);
cout << "result is:" << f.get() << endl;//結果也只能get取一次,取多次會有異常;
getchar();
getchar();
return 0;
}