2008-08-28 121 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的时候留下半个画面。

(这当然是假定呈现一个漂亮的图片到你的用户是您所需要的最重要的事情;)我碰到这个跑了一天,这可能是有帮助的,至少作为一个起点)