以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;
}