当前位置: 首页 > news >正文

兰州网站定制公司吴江网站制作

兰州网站定制公司,吴江网站制作,珠海网站建设小程序,dw如何在网站做弹窗概念简介 packaged_task 用于包装可调用目标(Callable)为一个对象,如lambda,普通函数,小括号重载等,用于异步调用。 其返回值或所抛异常被存储于能通过 std::future 对象访问的共享状态中,和promise类似。 将函数的调用与函数返…

概念简介

packaged_task 用于包装可调用目标(Callable)为一个对象,如lambda,普通函数,小括号重载等,用于异步调用
其返回值或所抛异常被存储于能通过 std::future 对象访问的共享状态中,和promise类似。

将函数的调用与函数返回值的获取分开调用,这样就给异步提供很大的便利。

猛的一看好像和std::bind绑定器作用相似,可惜std::bind返回的对象是同步的。

示例:函数在子线程执行,返回值可以在主线程异步获取

std::string Func()
{std::cout << "Thread t Call Func"<< std::endl;std::this_thread::sleep_for(std::chrono::seconds(2));return "Return Thread t Func Result";
}int main()
{//将全局函数Func打包成异步调用对象std::packaged_task<std::string()> task(Func);//task调用后的结果将保存在result中//result的类型是std::future<std::string> ,即函数返回值的类型auto result = task.get_future();//线程t执行异步任务std::thread t (std::move(task));//主线程获取异步任务的返回值auto value = result.get();//打印结果std::cout << "Main Thread Get Return value = " << value << std::endl;t.join();return 0;
}

执行结果:

Thread t Call Func
Main Thread Get Return value = Return Thread t Func Result

补充:

有一些任务执行可能比较耗时,我们可以使用其提供的带时间的结果获取

  • std::future_status::timeout 异步任务已经完成并返回结果。此时可以通过调用std::future::get()来获取异步任务的返回值;
  • std::future_status::ready 等待异步任务超时。此时可以选择等待更长时间再尝试获取结果,或者取消任务;
  • std::future_status::deferred 异步任务被推迟执行。此时可以暂时不获取结果,等待后续需要时再执行异步任务,或者放弃执行异步任务。利用std::future::deferred策略将异步任务推迟到std::future::get()方法调用时才执行,从而实现惰性求值。这种方式下,异步任务的执行被推迟,直到调用std::future::get()方法时再执行。返回该状态意味着异步任务还未执行,并且只有调用std::future::get()时才会执行。
    if(result.wait_for(std::chrono::milliseconds(100)) == std::future_status::timeout){//可以继续等待}if(result.wait_for(std::chrono::milliseconds(100)) == std::future_status::ready){//调用get()获取}if(result.wait_for(std::chrono::milliseconds(100)) == std::future_status::deferred){//调用get()获取}
http://www.hkea.cn/news/568315/

相关文章:

  • ps网页模板网站seo外包公司
  • 常平镇仿做网站快速排名刷
  • 青浦建设网站公司app推广代理加盟
  • wordpress 在线pdf优化关键词的正确方法
  • 网站悬浮窗口网站关键词全国各地的排名情况
  • 做网站得叫什么优化关键词排名
  • 丰县住房与城乡建设部网站太原网站制作优化seo公司
  • 微信如何做微商城网站建设手机网站智能建站
  • 网站尾部分页数字怎么做推广app大全
  • 建筑设计软件有哪些优化网站建设
  • 网站开发 word文件预览医疗器械龙头股
  • 电子商务网站建设花费南宁百度seo排名价格
  • 做公司网站要注意哪些问题真正免费建站网站
  • 在线服务器代理杭州seo网络公司
  • wordpress邮件订阅seo技术外包
  • 深圳营销网站建站公司搜索引擎关键词的工具
  • 做网站如何网站考虑优化游戏推广员是诈骗吗
  • 公众号做视频网站吗关键词排名怎么做上首页
  • 重庆做网站价格优化软件下载
  • 如何做网站镜像今日最火的新闻
  • 水果网站开发所需的成本市场营销实际案例
  • 无锡市新吴区住房和建设交通局网站西安百度关键词包年
  • 网站平台方案设计seo上首页
  • 郑州做网站的联系方式搜狗友链交换
  • 一般建设一个网站多少钱怎么接广告赚钱
  • 计算机专业网站开发方向销售推广方案
  • 上海网站建设公司排名西安百度公司
  • 中国网网址是多少网站推广优化教程
  • 关于加强机关网站建设运营培训
  • dw做的网站怎么让别人看到如何建立一个网站