簡體   English   中英

如何監控QThread

[英]How to monitor QThread

我正在研究Qt應用程序。 在那里,我希望工作線程在后台執行一些活動,並且我希望主線程控制它,如果死於某種原因,則重新啟動工作線程。 我已經看到線程發出的finish()信號,所以我想可以將插槽連接到它了。

這是推薦的方式嗎? 如果沒有,我該如何實現?

如果我使用finish()信號,如何知道正常終止和錯誤之間的區別?

謝謝並恭祝安康

如果您想知道是否有錯誤或過程已完成,只需創建兩個信號(不是一個)和兩個插槽(而不是一個)。

Qt文檔中,您有一個示例,該示例具有處理結果的連接:

connect(workerThread, &WorkerThread::resultReady, this, &MyObject::handleResults);

您在這里將信號resultReady與處理結果的任何方法連接起來。 您創建了另一個與此完全相同的對象,但是帶有錯誤信號和錯誤處理程序。

connect(workerThread, &WorkerThread::errorThrown, this, &MyObject::handleErrors);

當然,另一種選擇是只在信號/插槽中傳遞參數。 這是一個函數調用,如果在狀態中添加一些enum以表示狀態,或者將int放在其中,則可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM