2011-07-06 97 views
1

我爲應用程序創建插件並向用戶請求數據,因爲GUI應該保持響應,並且應用程序可能不需要創建線程長時間調用我的任何功能。支持從另一個線程創建GUI的GUI庫

問題是我知道的大多數GUI庫(wxWidgets,Qt)似乎都不支持從另一個線程創建GUI。有時候會有一些技巧來完成它,但它不是可移植的,也不保證。

我正在從一個正式支持從另一個線程啓動GUI的GUI庫尋找。該項目的唯一重要功能是可移植到Windows,Linux和Mac並暴露C接口。獎勵點爲輕量級。

+0

你意識到你在這裏問很多!普通的解決方案是在主線程中運行UI,並在工作者中運行長時間運行的任務。我相信你知道這一點。爲什麼它不能解決你的問題? –

+0

Tk怎麼樣?在消息隊列中它的命令應該很容易。 – whoplisp

回答

0

幾乎所有的GUI庫都依靠底層操作系統的API工作。當您在需求中使用「跨平臺」時,這會變得更加嚴格,因爲您現在必須依賴3個獨立平臺的支持。

因此,我懷疑你會發現每個(合理的)GUI庫都會有線程關聯。也就是說,幾乎每個庫都支持從其他線程創建工作,並且後臺線程在UI主線上處理UI時很「友好」且響應良好。我建議重新設計你的設計,讓你的操作在後臺線程上運行,而不是你的UI。

+0

我沒有設計應用程序。幸運的是,它是開源的,但我的情況非常特殊,我不認爲其他開發者會同意執行所需的更改(這可能會很多)。 – dprogramminglanguagedisposable

+0

@dprogramminglanguagedisposable:您應該能夠設計您的部分以這種方式工作 - 即使其他應用程序不是在設計時考慮到了這一點... –