草庐IT

apply_async

全部标签

c++ - 如何取消 std::async 函数?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Isthereawaytocancel/detachafutureinC++11?有一个使用std::future和std::async异步运行的成员函数。在某些情况下,我需要取消它。(该函数连续加载附近的对象,有时对象在加载时会超出范围。)我已经阅读了thisquestion的答案。解决了同样的问题,但我无法让它工作。这是与我的实际程序具有相同结构的简化代码。在异步运行时调用Start()和Kill()会因input的访问冲突而导致崩溃。在我看来,代码应该按如下方式工作。当调用Kill()时,运行标志被禁用。

c++ - std::async 可以调用 std::function 对象吗?

是否可以使用std::async调用通过std::bind创建的函数对象。以下代码编译失败:#include#include#includeusingnamespacestd;classAdder{public:intadd(intx,inty){returnx+y;}};intmain(intargc,constchar*argv[]){Addera;functionsumFunc=bind(&Adder::add,&a,1,2);autofuture=async(launch::async,sumFunc);//ERRORHEREcout错误是:没有匹配函数来调用“async”:候

c++ - boost 二进制 static_visitor 和 apply_visitor

我有以下代码:typedefboost::variantSearchParameter;enumVisibility{CLEAR,CLOUDY,FOG,SMOKE};classDetectionGenerator:publicboost::static_visitor{public:DetectionGenerator(constEnvironmentalFactors&factors);doubleoperator()(constLandSearchParameter&land,Visibilityvis)const;doubleoperator()(constWaterSearch

c++ - Visual Studio 2012 更新 2 中的 std::async 衰减(丢失)右值引用。任何解决方法?

考虑下面的代码:#include#includeusingnamespacestd;templatevoidTest2(futuref,Workw){async([](future&&f,Workw){},move(f),move(w));}intmain(){futurex=std::async([]()->int{std::this_thread::sleep_for(std::chrono::microseconds(200));return10;});Test2(std::move(x),[](intx){});return0;}以上,由于以下编译器错误而失败:Error1er

c++ - 为什么 std::apply 可以调用 lambda 而不是等效的模板函数?

以下代码片段(在OSX上使用gcc6.3.0和-std=c++17编译)展示了我的难题:#includetemplateautop(Ts...args){return(...*args);}intmain(){autoq=[](auto...args){return(...*args);};p(1,2,3,4);//==24q(1,2,3,4);//==24autotup=std::make_tuple(1,2,3,4);std::experimental::apply(q,tup);//==24std::experimental::apply(p,tup);//error:nomat

kotlin - 如何将 Kotlin 从 1.2 迁移到 Kotlin 1.3.0,然后在演示者函数中使用 async、UI 和 bg

我在Kotlin项目中使用MVP模式。我有一个Presenter类:importcom.google.gson.Gsonimportkotlinx.coroutines.experimental.android.UIimportkotlinx.coroutines.experimental.asyncimportorg.jetbrains.anko.coroutines.experimental.bgclassTeamsPresenter(privatevalview:TeamsView,privatevalapiRepository:ApiRepository,privatevalg

kotlin - 如何将 Kotlin 从 1.2 迁移到 Kotlin 1.3.0,然后在演示者函数中使用 async、UI 和 bg

我在Kotlin项目中使用MVP模式。我有一个Presenter类:importcom.google.gson.Gsonimportkotlinx.coroutines.experimental.android.UIimportkotlinx.coroutines.experimental.asyncimportorg.jetbrains.anko.coroutines.experimental.bgclassTeamsPresenter(privatevalview:TeamsView,privatevalapiRepository:ApiRepository,privatevalg

c++ - std::async 使用绑定(bind)到 lambda 的右值引用

我正在尝试使用std::bind将右值引用绑定(bind)到lambda,但是当我将其放入std::async调用时出现问题:(source)autolambda=[](std::string&&message){std::cout这会发出一个编译器错误,我不确定如何解释:error:notypenamed'type'in'classstd::result_of(std::basic_string)>&()>'这是怎么回事?有趣的是,稍作修改就可以按预期编译和工作。如果我将std::string{"helloworld"}更改为c字符串文字,一切正常:(source)autolambd

c++ - std::async 使用同一个线程,我的代码没有实现并行。

我在MacOSXcode4.3.2上使用C++11std::async使用同一个线程,我的代码没有实现并行。在下面的示例代码中,我想创建10个新线程。在每个线程中,我想计算输入变量的平方根并将结果设置为promise。在main函数中,我想显示从线程计算的结果。我正在使用策略launch::async调用std::async,所以我希望它创建一个新线程(10次)。#include#include#include#include#include#includeusingnamespacestd;mutexiomutex;voidfoo(inti,promise&&prms){this_t

c++ - std::apply forward parameters 如何在没有显式 std::forward 的情况下应用?

考虑std::apply的可能实现:namespacedetail{templateconstexprdecltype(auto)apply_impl(F&&f,Tuple&&t,std::index_sequence){returnstd::invoke(std::forward(f),std::get(std::forward(t))...);}}//namespacedetailtemplateconstexprdecltype(auto)apply(F&&f,Tuple&&t){returndetail::apply_impl(std::forward(f),std::forw