我正在研究用Ruby編寫的跨平臺GUI桌面應用程序。該應用程序將使用MacRuby在Mac OS X上提供GUI,並將在其他平臺上的GUI上使用Qt。該應用程序是一種多媒體工具,可用於抓取CD或DVD並將其編碼爲各種格式,或將多媒體文件從一種格式轉碼爲另一種格式。Ruby桌面應用程序中的後臺作業
這些任務很耗時,因此必須在後臺運行,以免在執行GUI時凍結GUI。此外,後臺作業應該能夠被取消和/或暫停,並且能夠向GUI報告狀態和進度。可能還需要爲作業分配優先級,以便優先級更高的作業在優先級較低的作業之前運行,並且在作業之間存在依賴關係,以便在所有依賴關係完成之前,作業不會開始執行。
我的問題是:什麼工具或技術最適合在Ruby GUI /桌面應用程序中處理這些背景作業?我不想讓「自己的」工作管理器產生進程或線程,並管理作業的啓動和停止等。
編輯:發佈此問題後,我意識到我已經問了一個非常類似的問題C++解決方案。我對這個Ruby解決方案的要求與我在此發佈的C++解決方案相同:C++ master/worker
MacRuby的好處之一就是您可以使用所有可可類似Grand Central Dispatch的東西嗎? http://en.wikipedia.org/wiki/Grand_Central_Dispatch – coreyward
Grand Central Dispatch爲Mac OS X提供了一種機制,但對其他部署平臺沒有幫助。 –
所以你正在尋找一種能夠跨平臺的工具。我不知道你有多大的可能性,特別是因爲Ruby不如桌面應用程序語言那麼受歡迎。 – coreyward