1
A
回答
1
不,你不能中止QRunnable任務。
到的唯一方法髒中止Qt中的螺紋是通過QThread::terminate()
(其泄氣)。
QThreadPool
使用QThread
幕後運行QRunnable任務,但它不提供開發人員撥打QThread::terminate()
的方法。因此,QRunnable不能中止。
我建議重新設計你的應用程序 - 是指Multithreading Technologies in Qt得到的一切,你可以使用線程的方法的概述,並選擇你的使用情況相符的解決方案。
2
Qt的股份線程對象模型類似於許多其他框架(在.NET語言和Java浮現在腦海中)。在這些類型的框架中,通常不鼓勵嘗試「中止」一個線程。其他線程實現(如POSIX)在很大程度上是相同的。骯髒殺死一個線程是不好的做法。
相反,構建內部的run()你的邏輯以這樣的方式,你可以把「闖關」中,每隔一段時間,以確定run()函數可以安全地終止。這些檢查點應該檢查一個表示線程應該結束的標誌(或其他一些標誌)。
+0
你是絕對正確的..但我需要修改現有的應用程序(大理石),使用這些任務,我想我可以很容易地阻止他們 – user1638466
相關問題
- 1. 讓試圖使任務
- 2. 試圖瞭解Android任務
- 3. SSIS無法停止調試執行任務腳本任務
- 4. 試圖瞭解.net中的任務
- 5. 試圖在Excel中計算任務
- 6. C++/Qt - QThread vs QRunnable
- 7. 耙中止任務,以
- 8. 取消/中止任務
- 9. 優雅中止rake任務
- 10. 任務中止後的AlarmManager
- 11. TFS 2015:測試運行在RunTest功能任務中中止
- 12. 阻止與任務?
- 13. WinRT:阻止任務
- 14. 在OmniThread並行任務中訪問參數將中止任務
- 15. 阻止IIS在任務結束之前終止任務
- 16. 賽璐珞::任務終止:任務已終止
- 17. BREW試圖阻止服務器
- 18. 試圖使用ansible執行任務
- 19. 試圖寫在異步任務
- 20. QThreadPool&QRunnable&靜態函數
- 21. 從QRunnable發射信號
- 22. Rakefile - 停止多任務中的每個任務
- 23. 調試rake任務
- 24. 測試Rake任務
- 25. Libssh2:防止後臺任務被終止
- 26. 停止後臺任務
- 27. 阻止啓動任務
- 28. 停止任務欄閃爍
- 29. 阻止任務延期
- 30. Ada任務和終止
OK!謝謝 ;) – user1638466