multithreading - 从 QRunnable 发出信号或发布事件

标签 multithreading events qt threadpool signals-slots

QRunnable::run() 中发出信号是正确的做法吗?我需要通知我的 GUI 线程由 QRunnable 处理的图像已完成。我正在使用 QThreadPool/QRunnable 因为我需要能够在池中已有任务时向池中添加新任务。我发现使用 QtConcurrentQFutureWatcher 很难做到这一点。

QRunnable 使用在 run() 中创建的 QObject 连接到目标 QObject 并发出信号。

如果从 QRunnable 发射不是一件好事,是否可以从那里发布事件?

最佳答案

是的,在 QRunnable::run() 中发射信号和发布事件是很好的事情,因为它们都是线程安全的。为了正确处理信号和事件,QObjects 必须具有正确的线程关联。参见 Threads and QObjects了解更多详情。

关于multithreading - 从 QRunnable 发出信号或发布事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5037472/

相关文章:

ios - CoreData并发和释放对象

php - 如何使用 jQuery 计算输入字段的总成本?

qt - 如何防止 QML 按钮在短时间内多次点击?

c++ - 当Visual Studio 2017从github源构建时,c1083错误

java - 并发写入 titan DB 以提高性能

multithreading - Scala future 如何在线程上运行?以及如何将它们用于执行异步和非阻塞代码?

angularjs - 使用 Angular,如何将单击事件绑定(bind)到元素并在单击时向下和向上滑动同级元素?

javascript - 使用 JavaScript 播放或暂停音频文件 (onkeydown)

c++ - Qt禁用触摸屏检测

java - 挂线程 java.lang.ClassLoader.findBootstrapClass