2011-09-03 91 views
2

如何在Qt中創建線程並逐步執行(當一個線程完成另一個線程啓動時)?如何在Qt隊列中創建多個線程?

請給我一個代碼示例?

+1

你有什麼試過自己?你爲什麼想要這樣做?什麼是獲得你的? –

+4

如果一切都是同步執行的,爲什麼不能有一個單一的線程? –

+0

同樣的海報非常類似的問題:http://stackoverflow.com/questions/7292588/problem-in-threading-in-qt – koan

回答

2

看看QThreadPool

但是,正如弗蘭克指出的那樣,如果你一個接一個地執行,那麼就不需要線程。

1

QThread對象有一個「finished()」信號。在您的線程管理器線程(即您的主要qwidget或qmainwindow)中,您可以有一個隊列管理器類,該類具有該信號所連接的插槽。當它從當前運行的線程接收到完成的信號時,該槽將初始化並執行隊列中的下一個線程。

這樣可以防止管理器線程中的阻塞,並允許您按照您所描述的從隊列中執行這些線程對象。

確保每次響應完成的信號時,都將下一個線程的完成信號連接到隊列管理器插槽。如果當前沒有其他線程正在運行,您還需要確保在「添加到隊列」方法中啓動線程。