我有一个具有一些属性和两个方法的类。这些方法需要相同的属性并且应该从程序开始运行直到程序终止。方法不需要与 GUI 线程交互。
目前我只知道如何在 Qt 中将一个完整的对象移动到另一个线程。但是我需要并行运行这两种方法。有什么办法吗?
最佳答案
您可以使用 QtConcurrent::run,它在单独的线程中运行函数。
QFuture<void> future1 = QtConcurrent::run(this,&MyClass::Function1, arg1 );
QFuture<void> future2 = QtConcurrent::run(this,&MyClass::Function2, arg1 );
您可以检查这些 futures 所代表的异步计算的状态,例如:
if(future1.isRunning())
{
// It is currently running
}
或者等待它完成:
future1.waitForFinished();
关于c++ - Qt在两个不同的线程中运行同一个对象的2个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23446492/