2011-02-18 63 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