期間與GUI交互我有一個類層次結構:長處理
class BaseProcess { public virtual void Execute() = 0; }; class SubProcess : BaseProcess { public virtual void Execute() { //Do Something //Need to call back to the GUI here, maybe to get a file path from a file selector //Do Something Else //Now want to update the GUI with the progress of the operation perhaps //More processing } };
假設創建一個子對象,並從GUI按鈕事件處理函數調用...
我的問題是什麼從Execute()函數與GUI進行交互的最佳方式是什麼? (還假設Execute()可能在不同的線程上運行)
我的想法是將一個回調傳遞到SubProcess對象,因爲這可以讓我發送信息到GUI,但是在這種情況下的文件選擇器,將數據返回到SubProcess對象的最佳方式是什麼?我希望解決方案儘可能通用,以便根據請求返回不同類型的數據。
注:請忽略任何代碼錯誤,我敲了樣品一起迅速只是爲了說明問題
更新:
對不起要清楚,這將是在Windows,MFC。我不知道這有多重要,因爲我認爲整體設計應該適用於大多數GUI框架?
哪個gui框架? – UmNyobe
線程。獲得一個線程來完成實際的工作,並在完成後告訴它將結果發回GUI。 – andre
如果這是Windows,則可以使用SendMessage()。 –