2011-02-18 21 views
1

QRunnable::run()内部发射信号是否正确?我需要通知我的GUI线程已完成由QRunnable处理的图像。我正在使用QThreadPool/QRunnable,因为我需要能够在存在任务的情况下向池中添加新任务。我发现用QtConcurrentQFutureWatcher这样做很难。从QRunnable发出信号或发布事件

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

如果发自QRunnable不是好事,是否可以从那里发布活动?

回答

4

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

+0

我认为我的困惑来自于信号和事件需要一个线程才能有一个偶数循环才能工作的印象。 Qt文档中没有提到QThreadPool线程是否有自己的循环。或者事件循环仅用于接收? – 2011-02-18 14:10:39