我正在開發多線程GUI應用程序GUI更改取決於來自另一個通信線程的數據。多線程GUI應用程序的設計模式
通信線程設置GUI的數據和數據更改的標誌。
目前我們正在主線程中通過定時器檢查網絡線程設置的標誌以及更改更改GUI。
但由於項目規模龐大,它變得混亂。
所以,如果有這些類型的問題任何設計圖案......
在此先感謝...
我正在開發多線程GUI應用程序GUI更改取決於來自另一個通信線程的數據。多線程GUI應用程序的設計模式
通信線程設置GUI的數據和數據更改的標誌。
目前我們正在主線程中通過定時器檢查網絡線程設置的標誌以及更改更改GUI。
但由於項目規模龐大,它變得混亂。
所以,如果有這些類型的問題任何設計圖案......
在此先感謝...
我通過他所描述的Emergent Design斯科特L.貝恩筆者參加了一個講座使用Mediator pattern作爲gui和業務邏輯之間的中介。在他的例子中,他們能夠交換一個固定的gui(從記憶中解釋)爲殘障人士提供的自然語言輸入,而不改變業務邏輯。類似的東西可以幫助你將從你的線程產生的數據同步到你的GUI,同時分離你的類的責任。
如何使事件驅動? GUI層訂閱來自數據或通信層的事件,並且當事件被觸發時,知道要自行更新。通過這種方式,GUI層知道數據/通信層,但反之亦然。
順便說一句,不確定你的環境,但必須小心更新從事件觸發線程的GUI。在.NET中,例如,您需要使用Control.Invoke(http://msdn.microsoft.com/zh-cn/library/zyzhdc6b.aspx)從非GUI線程更新GUI。