在 QRunnable::run()
中发出信号是正确的做法吗?我需要通知我的 GUI 线程由 QRunnable
处理的图像已完成。我正在使用 QThreadPool
/QRunnable
因为我需要能够在池中已有任务时向池中添加新任务。我发现使用 QtConcurrent
和 QFutureWatcher
很难做到这一点。
QRunnable
使用在 run()
中创建的 QObject
连接到目标 QObject
并发出信号。
如果从 QRunnable
发射不是一件好事,是否可以从那里发布事件?
最佳答案
是的,在 QRunnable::run()
中发射信号和发布事件是很好的事情,因为它们都是线程安全的。为了正确处理信号和事件,QObjects 必须具有正确的线程关联。参见 Threads and QObjects了解更多详情。
关于multithreading - 从 QRunnable 发出信号或发布事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5037472/