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

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

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

笔记:请不要建议我在 UI 线程上运行太多。那是 不是 案子。

有帮助吗?

解决方案

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

其他提示

好吧,只是我脑子里的一个想法......

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

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

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

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

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

这个想法是将长时间运行的操作卸载到一个单独的线程。这实际上与任何其他事件驱动框架没有什么不同。 任何事物 依赖于处理 Paint 事件的程序很容易受到此影响。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top