在QRunnable::run()
内发出信号是正确的吗?我需要通知我的GUI线程QRunnable
处理的图像已完成。我正在使用QThreadPool
/ QRunnable
,因为我需要能够在池中添加任务时添加新任务。我发现使用QtConcurrent
和QFutureWatcher
很难做到这一点。
QRunnable
使用QObject
中创建的run()
来连接目标QObject
并发出信号。
如果从QRunnable
发出不是好事,是否可以从那里发布事件?
答案 0 :(得分:4)
是的,发出信号和发布事件是QRunnable::run()
中的好事,因为它们都是线程安全的。要正确处理信号和事件,QObject必须具有正确的线程关联。有关详细信息,请参阅Threads and QObjects。