我有一個GtkTextBuffer的GTK +應用程序。它使用幾個工作線程執行一些冗長的操作。這些線程可以以文本格式報告其進度。我想顯示工作線程如何執行的細節。你能告訴我如何接收來自工作者線程的輸入嗎?GTK +應用程序:接收來自工作線程的輸入
我認爲我可以從工作線程發出一個信號「插入文本」,但是在谷歌搜索時找不到相關示例。任何幫助深表感謝。
我有一個GtkTextBuffer的GTK +應用程序。它使用幾個工作線程執行一些冗長的操作。這些線程可以以文本格式報告其進度。我想顯示工作線程如何執行的細節。你能告訴我如何接收來自工作者線程的輸入嗎?GTK +應用程序:接收來自工作線程的輸入
我認爲我可以從工作線程發出一個信號「插入文本」,但是在谷歌搜索時找不到相關示例。任何幫助深表感謝。
傳統的快速和骯髒:寫你的狀態更新到鏈接列表(由一些同步原語保護),讓GTK主循環通過定時器輪詢它。
您可以使用GAsyncQueue在UI和工作線程之間進行消息傳遞,它是一個非常完整的通信API。
我看了一下API(感謝您的建議)。然而,我不知道如何通過主循環來推動信號。對他們進行管理(通過定時器或空閒處理)效率不高。我只是想知道什麼時候發生了一些有趣的事情。這就是爲什麼我考慮從工作線程發射信號的原因。 – 2011-12-21 15:29:24
你不能找到一個例子嗎? – ptomato 2011-12-18 20:29:21
如何從工作線程觸發信號的示例。我可以這樣做嗎? – 2011-12-21 15:27:37
與從主線程發出信號相同,即'g_signal_emit()'或'g_signal_emit_by_name()'。在持有GDK鎖的情況下,主線程調用信號處理程序。 – ptomato 2011-12-21 20:30:19