26得票6回答
一个在工作线程中创建的QObject在该线程终止后,线程关联会发生什么?

假设我调用了QtConcurrent::run()函数,在一个工作线程中运行一个函数,并在该函数中动态分配了几个QObjects(以备后用)。由于它们是在工作线程中创建的,因此它们的线程亲和力应该是该工作线程的。然而,一旦工作线程终止,QObject的线程亲和力就不再有效。 问题是:Qt是否...

20得票2回答
能否使用QtConcurrent :: run()与类的函数成员一起使用?

我似乎无法将QtConcurrent::run()与一个方法(类的函数成员)关联起来,只能与简单函数关联。我该怎么做? 对于普通函数,我无法发射信号,这很麻烦。为什么有人会觉得这比QThread更好,这超出了我的理解范围,我希望能听到一些意见。

18得票2回答
QtConcurrent和QThread多线程性能比较

假设您的应用程序需要在多个线程中运行一个函数,线程数超过了CPU核心/线程数。一种方法是使用QtConcurrent并设置最大线程数:MyClass *obj = new MyClass; QThreadPool::globalInstance()->setMaxThreadCount...

18得票5回答
可以取消并报告进度的QFuture

QFuture类有一些方法,例如cancel()、progressValue()等等。这些方法可以通过QFutureWatcher进行监视。然而,QtConcurrent::run()的文档中写道: 请注意,QtConcurrent::run()返回的QFuture不支持取消、暂停或进...

8得票2回答
Qt Concurrent 还是 std::async 适用于新代码?

我正在考虑两种运行异步代码的选项:Qt Concurrent和std::async。鉴于我正在使用Qt编写GUI应用程序,因此选择Qt Concurrent是有道理的。然而,std::async也很好,并且受到所有主要编译器的支持。 对于新代码,我应该使用Qt Concurrent还是std...

8得票3回答
PySide/PyQt中的QtConcurrent

我正在尝试弄清楚是否可以子类化QtConcurrent并在其中编写一个运行方法: class Task(QtCore.QtConcurrent): def run(self, function): function() 还是它完全没有用处?

7得票1回答
使用QFuture更新QProgressDialog

当主GUI线程等待QFuture时,正确的方法是什么来更新QProgressDialog?具体而言,在这个循环中应该放什么: QProgressDialog pd(...); QFuture f = ...; while (!f.isFinished()) { pd.setValue(...

7得票2回答
Qt并行运行,通过引用传递值,但内存地址不同?

我使用 QtConcurrent::run 来运行一个函数,并通过引用传递值,但值的内存地址是不同的。 但是如果我通过指针传递值,则地址相同!我无法理解这是为什么。我是否漏掉了什么? 以下是代码。 void ptr(QString* s) { qDebug() << ...

7得票2回答
如何将QtConcurrent :: run函数(或类似函数)中的progressText通信到QFutureWatcher?

如果我使用QtConcurrent :: run启动一些异步执行的函数,并使用QFutureWatcher监视返回的未来,那么在异步执行的函数中可以做些什么来传达一些进度文本,以导致QFutureWatcher触发其progressTextChanged信号? 也就是说,我想要做的是类似于:...