4

CF 上的 Winform 有点重,初始化很多窗口句柄需要大量时间和内存。另一个问题是缺乏内置的双缓冲和缺乏对 UI 渲染的控制,这意味着在处理器密集型操作期间,UI 可能会让用户盯着半渲染的屏幕。好的!

为了缓解这个问题,我会寻求一个轻量级的控制框架,是否已经有一个已经开始或者必须自制?

我所说的轻量级是指一个控件库,它可以完全控制控件的绘制,并且不使用许多昂贵的窗口句柄。

注意:请不要建议我在 UI 线程上运行太多。事实并非如此。

4

4 回答 4

2

前几天我遇到了这个问题,这至少作为一个起点可能会有所帮助:Fuild - Windows Mobile .NET Touch Controls。外观和感觉很好,但没有设计时支持。我不太了解内存占用等,但一切都是双缓冲的,性能似乎相当不错。

于 2009-06-04T14:26:46.510 回答
1

好吧,只是我脑海中的一个想法......

如何在您的应用程序中创建一个同步对象,例如临界区或单个锁,在您的工作线程和 gui 线程之间共享。覆盖油漆。当你开始绘制时,阻塞所有其他线程,这样你就不会在它们占用 CPU 时留下一半绘制的屏幕。

(这当然假设向您的用户呈现漂亮的图片是您需要的最重要的事情;))

于 2008-09-27T11:30:07.253 回答
0

实际上,您可以覆盖绘制事件。

这个想法是您将长时间运行的操作卸载到单独的线程。真的,这与任何其他事件驱动框架没有什么不同。 任何依赖于处理 Paint 事件的东西都会受到影响。

此外,没有系统可以让您确定何时引发绘制事件。这种事件通常由窗口管理器层引发,它位于应用程序(甚至框架)之外。您可以自己处理事件,有时不做任何工作,但我不建议这样做。

于 2008-08-28T19:49:57.463 回答
0

有点慢,您无法控制绘制事件,因此在处理器密集型操作期间,UI 可能会让用户盯着半渲染的屏幕。

在 UI 线程上执行昂贵的任务通常是个坏主意。为了保持你的 UI 响应,这些任务应该由工作线程执行

于 2008-08-28T19:50:35.403 回答