从QRunnable发出信号或发布事件

时间:2011-02-18 04:02:32

标签: multithreading events qt threadpool signals-slots

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

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

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

1 个答案:

答案 0 :(得分:4)

是的,发出信号和发布事件是QRunnable::run()中的好事,因为它们都是线程安全的。要正确处理信号和事件,QObject必须具有正确的线程关联。有关详细信息,请参阅Threads and QObjects