2014-10-03 138 views
2

我有一個Linux Qt應用程序,它創建了一些QThreads是否可以命名QThread?

我知道當您創建一個線程時,它會繼承父級名稱,當我使用htopps ax -L時,我可以看到它。

是否可以命名這些QThreads並通過bash命令(如ps ax -Lhtop)查看它們的名稱?

回答

1

是剛剛開始之前有的名稱的的QThread對象:

QThread* thr = new QThread(this); 

thr->setObjectName("worker thread"); 

the docs

要選擇你的線程將給予(通過 命令名稱例如,Linux上的ps -L),您可以在啓動線程之前調用setObjectName() 。如果您不調用setObjectName(),則給予您的線程的名稱將爲線程對象的運行時類型 的類名稱(例如,對於 Mandelbrot示例,則爲「RenderThread」,因爲它是QThread子類的名稱)。注意 ,這目前不適用於Windows上的發佈版本。

+0

謝謝你的回答......我已經嘗試過這種方式沒有成功,'ps ax -L'不顯示我給它的名字,但是「目標」名稱...任何解釋? – Gappa 2014-10-03 13:34:36

+0

你在*開始線程之前命名了它嗎? – 2014-10-03 13:36:15

+0

是的,我這樣做:'t1 = new QThread(); T1-> setObjectName( 「工人」); t1-> start();' – Gappa 2014-10-03 13:44:25

相關問題