jjzjj

qtconcurrent

全部标签

c++ - QtConcurrent blockingMappedReduced 与 MappedReduced

根据我的理解,QtConcurrent::blockingMappedReduced返回最终结果,而QtConcurrent::MappedReduced返回一个QFuture对象,但在这个例子中http://doc.qt.io/qt-5/qtconcurrent-wordcount-main-cpp.html我看到了这样的代码:WordCounttotal=QtConcurrent::mappedReduced(files,countWords,reduce);QtConcurrent::mappedReduced函数也返回最终结果。我错过了什么吗?如果这是错误的,那么使用QtCon

c++ - 使用 QtConcurrent 在 QT 中实现多线程

我正在用Qt开发一个应用程序,它有时会处理一堆视频。它工作正常,但在处理阶段它只有40-60%的CPU使用率,所以我试图让它成为多线程。我使用QtConcurrent因为他的“高级别”而不是更传统的线程管理,我的代码很简单:for(inti=0;ifutureToken=QtConcurrent::run(this,process,listOfVideos.takeFirst());QFutureWatcher*fw=newQFutureWatcher();connect(fw,SIGNAL(finished()),this,SLOT(manageResult));fw->setFut

c++ - QtConcurrent::run 异常通知

我知道实际处理在不同线程中抛出的异常没有意义,但是有什么方法可以通知我至少发生了异常吗?例如。类似#include#include#includevoidMyFunction(){//std::cout即使发生异常,也会安静地退出。当异常来自调用堆栈深处的某处时,这有时会让人非常困惑。------------编辑------------我试过像UmNyobe建议的那样编写一个包装器,但我一定是在函数指针方面做错了什么?#include#include#include#include#includevoidMyFunction(){//std::coutboolExceptionWrap

c++ - QtConcurrent与成员函数

我创建了一个QFuture,我想用它来并行化对成员函数的调用。更准确地说,我有一个带有.h的solveParallel类:classsolverParallel{public:solverParallelData(Manager*mgr_);virtual~solverParallel(void);voidrunCompute(solveModel*model_);boolresultComput();private:Manager*myMgr;QFuturemyFutureCompute;};方法runCompute()正在创建myFutureCompute成员。.cpp看起来像so

c++ - QtConcurrent::run() 不能处理超过 5 个参数?

将具有6个或更多参数的函数传递给QtConcurrent::run()时出现编译错误。当我将它们减少到5个参数时,我不再收到此错误。这个伪代码为我重现了错误:voidfoo(int,int,int,int,int,int){}QtConcurrent::run(foo,1,2,3,4,5,6);编译错误是:error:nomatchingfunctionforcallto'run(void(&)(int,int,int,int,int,int),int,int,int,int,int,int)'应该是这样吗?QtConcurrent::run()真的最多只能有5个参数吗?

c++ - Qt并发运行,按引用传值,但内存地址不一样?

我使用QtConcurrent::run来运行一个函数,并通过引用传递值,但是值的内存地址不同。但是如果我用指针传值,地址是一样的!我想不通。我错过了什么吗?这是代码。voidptr(QString*s){qDebug()f1=QtConcurrent::run(ptr,&str);f1.waitForFinished();QFuturef2=QtConcurrent::run(ref,str);f2.waitForFinished();qDebug()输出:passbyptr:0x28fefcpassbyref:0x525de4addressofstr:0x28fefc

在QTConcurrent中获取QTimer以正常工作

我目前正在尝试获得QTimer在单独的线程中运行时工作并发出适当的信号。我不确定我该怎么做才能获得timeout()信号要发射。当我尝试使用QFuture和QFutureWatcher他们永远不会把finished()信号由于该线程从未真正结束,因此它只是循环循环。我看过许多其他问题1,2,3,4,5无济于事。这就是我目前拥有的。任何建议将不胜感激!foo.cppFoo::Foo(){...mcTimerForSpoilers=newQTimer(this);connect(mcTimerForSpoilers,SIGNAL(timeout()),this,SLOT(queueDownload

c++ - Qt Concurrent 或 std::async 用于新代码?

我正在考虑运行异步代码的两个选项:QtConcurrent和std::async.鉴于我正在使用Qt编写GUI应用程序,因此使用QtConcurrent是有意义的。然而std::async看起来也不错,并且得到了所有主要编译器的支持。我应该为新代码使用QtConcurrent还是std::async?比较两者时我还应该寻找什么? 最佳答案 GiventhatI'mwritingaGUIappwithQt,itmakessensetogowithQtConcurrent我想说,事情没那么简单。我个人会尽可能多地使用标准库。但是,需要考

c++ - 是否可以将 QtConcurrent::run() 与类的函数成员一起使用

我似乎无法将QtConcurrent::run()与方法(类的函数成员)仅与一个简单的函数相关联。我怎样才能做到这一点?使用常规函数,我无法发出信号,这很麻烦。为什么有人会发现这是一个比QThread更好的替代方案,这超出了我的理解,并且想要一些输入。 最佳答案 是的,这是可能的(而且非常简单)。这是一个示例(来自Qt文档)://call'QStringListQString::split(constQString&sep,SplitBehaviorbehavior,Qt::CaseSensitivitycs)const'inase

c++ - 是否可以将 QtConcurrent::run() 与类的函数成员一起使用

我似乎无法将QtConcurrent::run()与方法(类的函数成员)仅与一个简单的函数相关联。我怎样才能做到这一点?使用常规函数,我无法发出信号,这很麻烦。为什么有人会发现这是一个比QThread更好的替代方案,这超出了我的理解,并且想要一些输入。 最佳答案 是的,这是可能的(而且非常简单)。这是一个示例(来自Qt文档)://call'QStringListQString::split(constQString&sep,SplitBehaviorbehavior,Qt::CaseSensitivitycs)const'inase
12