2013-05-20 21 views
0

我遵循MVC設計。我有三個控制器部件,它們在主GUI線程中運行。還有另一個工作線程處理一些I/O的東西。一旦工作線程完成其任務,所有三個控制器都應該收到通知。任何人都可以爲我提供一個解決方案嗎?如何從工作線程訂閱通知?

我正在使用PyQT。那麼有什麼方法嗎?訂閱從工作者線程到多個控制器部件的事件?

回答

1

最簡單的方法是在工作線程中發出一個信號。從工作線程的信號到控制器的插槽創建三個連接,你應該很好。

Qt中的信號/插槽連接是線程安全的,並且可以按預期工作。只有帶有槽的對象所在的線程需要有一個事件循環,這很好,因爲在你的情況下,這些槽屬於控制器,它在GUI線程中有一個事件循環。

有關更多詳細信息,請參見QObjects and threads上的文檔。