有沒有辦法檢測QT QRunnable對象何時完成? (除了在運行()方法結束時手動創建某些信號事件)。有沒有辦法檢測QT QRunnable對象何時完成?
回答
可能有,或者您可能需要稍微更高級別。 QFuture
和QFutureWatcher
類被設計爲當它正在觀看的項目完成時與Qt的Concurrent framework和QFutureWatcher
類has a signal一起使用。
您可以添加自己的SIGNAL
,它將作爲run()
方法所做的最後一件事發出。然後只需將它連接到核心響應SLOT
就在調用connect(...);
您可以簡單地使用QtConcurrent運行runnable並使用QFuture等待完成。
#include <QtConcurrentRun>
class MyRunnable : public Runnable{
void run();
}
才能運行並等待它,你可以做以下
//create a new MyRunnable to use
MyRunnable instance;
//run the instance asynchronously
QFuture<void> future = QtConcurrent::run(&instance, &MyRunnable::run);
//wait for the instance completion
future.waitForFinished();
Qtconcurrent ::運行將啓動一個新的線程來實例上執行方法的run(),並立即返回一個QFuture那跟蹤實例進度。
但請注意,使用此解決方案時,您可以在執行過程中將實例保存在內存中。
我認爲QtConcurrent :: run實際上並沒有使用QRunnable ...在你的例子中,你從Runnable類(QRunnable?)派生出來 - 但是我認爲它不會從任何類派生出來? – 2013-09-20 13:52:21
事實上,我只是想盡可能地保持這個例子儘可能接近請求。你當然是對的:myRunnable可能是任何類。 – Pierluigi 2013-09-20 20:09:51
- 1. 有沒有辦法檢測更新面板刷新完成?
- 2. 有沒有辦法檢測何時iframe開始加載未完成?
- 3. 有沒有辦法檢測對象是否被鎖定?
- 4. 有沒有辦法檢測對象的屬性何時被更改?
- 5. 有沒有辦法知道nodeunit已經完成所有測試?
- 6. jquery「對象沒有辦法」
- 7. 有沒有辦法檢測NPLogonNotify
- 8. Jquery自動完成 - 對象[對象對象]沒有方法'自動完成'
- 9. 有沒有辦法檢測何時加載磁貼失敗?
- 10. 有沒有辦法檢測python程序何時結束?
- 11. 有沒有辦法檢測applet何時關閉?
- 12. 有沒有辦法檢測HTML元素何時被隱藏?
- 13. 對象[對象對象]沒有方法'自動完成'
- 14. 有沒有辦法限制現有的TensorFlow對象檢測模型?
- 15. 有沒有辦法檢測Facebook Javascript SDK是否成功加載?
- 16. 有沒有辦法醃製FTP對象?
- 17. 有沒有辦法寫每個對象
- 18. 有沒有辦法讓一個對象
- 19. 有沒有辦法擴展ThreeJS對象?
- 20. 有沒有辦法檢測Outlook郵件是否沒有附件?
- 21. 有沒有辦法在Grails中驗證完成後操作Domain對象
- 22. 有沒有辦法檢測何時顯示Facebook權限對話框?
- 23. 當clojure未來完成時,有沒有辦法通知?
- 24. 有沒有辦法檢測Apple Watch是否與iPhone配對?
- 25. 有沒有辦法「壓縮」lm()對象以供以後預測?
- 26. 有沒有辦法在JavaScript中檢查父/調用對象?
- 27. 有沒有辦法在Qt中檢查重複的連接?
- 28. 如何檢測何時完成所有controllerDidChangeContent方法
- 29. 有沒有辦法檢測iAd是否顯示「測試廣告」?
- 30. 用UiAutomator測試Snackbar,有沒有辦法?
你能詳細說一下嗎?我應該如何將QRunnable與QFuture關聯?或者你是否建議不要使用QRunnable? – 2012-11-12 09:58:26