草庐IT

concurrent.futures

全部标签

c++ - c++ 11中的 future vector

您好,我使用lambda函数在C++11中创建了一个futurevector。vectorv={0,1.1,2.2,3.3,4.4,5.5};autoK=[=](doublez){doubley=0;for(constautox:v)y+=x*x*z;returny;};vector>VF;for(doublei:{1,2,3,4,5,6,7,8,9})VF.push_back(async(K,i));它运行成功,但是当我尝试通过for_each调用检索值时,我遇到了一个我不理解的编译错误。for_each(VF.begin(),VF.end(),[](futurex){cout这些值

c++ - 调用 get() 后 std::future 仍然有效(抛出异常)

根据cppreference,在调用std::future::get之后:valid()isfalseafteracalltothismethod.此外,来自cplusplus.com:Oncethesharedstateisready,thefunctionunblocksandreturns(orthrows)releasingitssharedstate.Thismakesthefutureobjectnolongervalid:thismemberfunctionshallbecalledonceatmostforeveryfuturesharedstate.在异常安全下:Th

c++ - 将 future 存储在列表中

我想将使用异步生成的多个线程的future存储在一个列表中,以便稍后检索它们的结果。futuref=async(doLater,parameter);list>l;l.push_back(f);但是编译器打印出如下错误信息/usr/include/c++/4.7/bits/stl_list.h:115:71:error:useofdeletedfunction'std::future::future(conststd::future&)[with_Res=int;std::future=std::future]'我是做错了什么还是列表不应该存储future?如果不是,应该使用什么?

c++ - boost::asio 与 boost::unique_future

根据http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/overview/cpp2011/futures.html,我们可以将boost::asio与std::future一起使用。但是我找不到任何关于使用boost::unique_future的信息,它有更多的功能,比如then()。我该如何使用? 最佳答案 Boost.Asio仅提供一流的异步操作支持,以返回C++11std::future或stackfulcoroutines中的实际值.尽管如此,requireme

c++ - 将 future 与 boost::asio 结合使用

有没有人知道使用futuresfromtheBoostthreadlibrary的例子?与BoostASIO?我有一个现有的异步库,它使用回调函数,我想为其提供一个更友好的同步接口(interface)。 最佳答案 如果不了解与现有异步库的交互,很难提供简洁的解决方案。尽管如此,这answer使用Boost.Future和Boost.Asio来实现主动对象模式。当creatingafuture,考虑检查现有的异步库以确定哪种方法更合适:boost::packaged_task提供了一个可以创建future的仿函数。这个仿函数可以在B

c++ - 从中间 future 创造 future ?

在下面的示例代码中,我想创建一个Item来自Component的对象:structComponent{};structItem{explicitItem(Componentcomponent):comp(component){}Componentcomp;};structFactory{staticstd::futureget_item(){std::futurecomponent=get_component();//howtogetastd::future?}std::futureget_component();};我如何从std::future开始至std::future?更新:从

c++ - std::promise 和 std::future 的非明显生命周期问题

这个问题与这里的前一个问题非常相似:race-conditioninpthread_once()?本质上是同一个问题——std::promise的生命周期在调用promise::set_value期间结束(即:在关联的future被已标记,但在pthread_once执行之前)所以我知道我的用法有这个问题,因此我不能以这种方式使用它。但是,我认为这并不明显。(用ScottMeyer的名言:让界面易于正确使用而难以错误使用)下面我举个例子:我有一个线程(dispatcher),它在队列上旋转,弹出一个“作业”(一个std::function)并执行它。我有一个名为synchronous_

c++ - 如何将 future 放入容器中?

我正在尝试将异步生成的future放入vector中,因此我不必执行类似以下操作:autof1=async(....);autof2=async(....);...f1.get();f2.get();...我在这段代码中收到的编译错误是“调用‘std::_1::future’的已删除构造函数”。任何人都可以帮助我如何正确地做到这一点。也不确定将future复制到vector中。voidAudioAnalyzer::retrieve(){deque>tempData(data);vector>futures;for(inti=0;i>&aq){while(true){m.lock();i

wpf - WPF 是用户界面设计的 future 吗?我现在应该学吗?

围绕WPF之类的话题有很多讨论。我想知道WPF是否会成为图形交互用户界面设计的新标准。这是我们在Windows界面方面的发展方向吗?它真的会像每个人所说的那样起飞吗?另见LearningWindowsFormsvs.WindowsPresentationFoundation(ContainslinkstomanyotherusefulpostsonWPF). 最佳答案 我认为仍有大量应用程序是在Win32、MFC,当然还有WinForms中完成的。我认为将WPF添加到您的工具带将是一个明智的选择。你应该放下一切,今天就去学习吗?这取

windows - 我怎样才能获得面向 future 的用户友好型操作系统版本?

这个问题,HowcanIdeterminetheWindowsversionfromaVB6app,有一个来自CodyGray的非常有用的答案,它利用GetVersionEx和SelectCase语句将Windows版本作为用户友好的字符串返回。然而,给出的代码是有限的,因为所有的返回值都是硬编码的,这意味着它不是面向future的,每次新版本的Windows出现时都需要重写,例如Windows8。除了使用GetVersionEx和SelectCase语句之外,是否有任何其他选项来检索用户友好的操作系统名称,该名称也将在未来得到证明? 最佳答案