我有两个连接到同一信号的Qt插槽。
我必须并行运行它们而不使用Qt多线程。
我搜索了Qt是否提供了一个解决方案来暗示,但我没有找到。
在Qt中有没有解决办法?
答案 0 :(得分:4)
您需要将信号连接到slot()
并使用QtConurrent
完成所有工作
#include <QtConcurrent>
#include <QFuture>
...
void MyClass::slot()
{
QFuture <void> future1, future2;
future1 = QtConcurrent::run(this,&MyClass::slot1);
future2 = QtConcurrent::run(this,&MyClass::slot2);
future1.waitForFinished();
future2.waitForFinished();
}
您需要使用并发模块。在.pro
文件中,添加:
QT += concurrent