草庐IT

QTConcurrent

全部标签

c++ - 在工作线程中创建的 QObject 的线程亲和性会发生什么,然后终止?

假设我调用QtConcurrent::run()在工作线程中运行一个函数,并在该函数中动态分配几个QObject(供以后使用)。由于它们是在工作线程中创建的,因此它们的线程亲和性应该是工作线程的亲和性。但是,一旦工作线程终止,QObject线程亲和性应该不再有效。问题:Qt会自动将QObject移动到父线程中,还是我们负责在工作线程终止之前将它们移动到有效线程中? 最佳答案 QThread没有记录在完成时自动移动任何QObject,所以我认为我们已经可以得出结论,它没有做这样的事情。这种行为会非常令人惊讶,并且与API的其余部分不一

c++ - 在工作线程中创建的 QObject 的线程亲和性会发生什么,然后终止?

假设我调用QtConcurrent::run()在工作线程中运行一个函数,并在该函数中动态分配几个QObject(供以后使用)。由于它们是在工作线程中创建的,因此它们的线程亲和性应该是工作线程的亲和性。但是,一旦工作线程终止,QObject线程亲和性应该不再有效。问题:Qt会自动将QObject移动到父线程中,还是我们负责在工作线程终止之前将它们移动到有效线程中? 最佳答案 QThread没有记录在完成时自动移动任何QObject,所以我认为我们已经可以得出结论,它没有做这样的事情。这种行为会非常令人惊讶,并且与API的其余部分不一

c++ - 如何在没有竞争条件的情况下将 QFutureWatcher 与 QtConcurrent::run() 一起使用

如果我正确理解QFutureWatcher文档中的以下代码,那么在最后一行之间存在竞争条件://Instantiatetheobjectsandconnecttothefinishedsignal.MyClassmyObject;QFutureWatcherwatcher;connect(&watcher,SIGNAL(finished()),&myObject,SLOT(handleFinished()));//Startthecomputation.QFuturefuture=QtConcurrent::run(...);watcher.setFuture(future);如果Qt
12