2008-08-28 102 views
4

CF上的Winform有點沉重,初始化很多窗口句柄需要嚴肅的時間和內存。另一個問題是缺乏內置的雙緩衝以及缺乏對UI渲染的控制,這意味着在處理器密集型操作期間,用戶界面可能會讓用戶盯着一半渲染的屏幕。太好了!精簡框架 - 輕量級GUI框架?

爲了緩解這個問題,我會尋求一個輕量級的控制框架,有沒有人已經踢過或將要自制?

通過輕量級我的意思是一個控制庫,使一個完全控制繪畫的控制,並不使用許多昂貴的窗口句柄。

注意:請不要暗示我在UI線程上運行太多。那就是不是的情況。

+0

有點遲到想關閉這個,呃? – Quibblesome 2013-09-17 17:45:23

回答

0

實際上,您可以覆蓋繪畫事件。

而這個想法是,你將長時間運行的操作卸載到一個單獨的線程。這與其他任何事件驅動的框架沒有什麼不同。 任何依靠處理Paint事件的東西都會受此影響。

此外,沒有系統可以讓您確定繪製事件何時引發。這種事件通常由應用程序之外的窗口管理器層(甚至框架)引發。你可以自己處理事件,並且在某些時候不做任何工作,但我不會推薦它。

0

有點慢,並且您無法控制繪畫事件,因此在處理器密集型操作期間,用戶界面可能會讓用戶盯着一半呈現的屏幕。

在UI線程上執行昂貴的任務通常是一個壞主意。爲了使您的UI響應,這些任務應該由worker thread

1

好吧,只是一個想法從我的頭頂進行...

如何創建一個同步對象,例如臨時部分或單一鎖定,在您的應用程序中,您的工作者和gui線程之間共享。覆蓋油漆。當你開始繪畫的時候,屏蔽掉所有其他的線程,這樣你就不會在CPU佔據CPU的時候留下半個畫面。

(這當然是假定呈現一個漂亮的圖片到你的用戶是您所需要的最重要的事情;)我碰到這個跑了一天,這可能是有幫助的,至少作爲一個起點)