Qt-如何同时运行两个插槽而不显式实现线程
Qt- how to run two slots simultaneously without explicitly implementing threads
我有两个Qt插槽连接到相同的信号。
我必须并行运行它们而不显式地使用Qt多线程。
我搜索了Qt是否提供了隐式解决方案,但我没有找到。
是否有任何解决方案做到这一点在Qt?
您需要将信号连接到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
相关文章:
- 通过插槽和信号在不同线程中的两个qt对象之间进行通信
- Qt信号和插槽如果从QRunnable或其他线程调用,则不起作用
- boost信号和插槽在不同的线程中不工作(使用boost::asio::io_service)
- Qt5 跨线程信号和插槽
- 信号/插槽多线程 Qt
- Qt-使用信号和具有不同线程的插槽
- 一个类中的QT信号/插槽,但从不同的线程发出
- 我有 12 个 CPU,1 个插槽,每个插槽 6 个内核,每个内核 2 个线程 - 这些信息如何对应于 MPI 和 Op
- 从第二个线程调用Qt信号有效 - >对连接的插槽没有影响
- 为什么即使在使用 Qt::D irectConnection 之后,接收器的线程中仍会调用插槽?如何确保在另一个线程中调用它?
- 将工作线程信号与主窗口插槽 (Qt5) 连接时出错
- QT插槽未在多线程DLL中执行
- QT对象::连接:没有此类插槽信号到线程插槽
- 如何将信号从线程连接到插槽
- 交叉线程信号插槽,如何发送字符*
- worker是否可以在Qt中使用信号/插槽连接停止自己的线程?
- 如何在 Windows 上的线程退出时释放 TLS 插槽中的对象
- 使用QtConcurrent::run连接单独线程上的信号/插槽
- 将只有插槽的QGLWidget移动到不同的线程
- Qt信号和插槽线程安全