【问题标题】:Performance of C#/.net forms with lots of controls具有大量控件的 C#/.net 表单的性能
【发布时间】:2011-01-04 06:35:48
【问题描述】:

表单上的控件数量会影响其性能吗?如果控件被标记为不可见怎么办?如果几个控件是可见的,但完全被几个控件覆盖(比如一个包含几个控件的面​​板)怎么办?

我是从 3D 建模包、视频编辑软件等应用程序的角度来问这个问题的。它们有隐藏的面板、选项卡、卷展栏、动画抽屉等等。

有人做过这样的性能测试吗?值得考虑吗?

【问题讨论】:

  • 当您拥有如此多的控件以致遇到性能问题时,您的应用程序的 UI 设计出现了严重问题。
  • 是的。在某种程度上。看看一些视频编辑或 3D 建模软件。他们有隐藏的面板和动画抽屉等等。一切都在一个屏幕上。也将此添加到问题中。
  • 这就是为什么您可以在用户控件、自定义控件等中对控件进行分组。

标签: c# .net winforms performance controls


【解决方案1】:

是的。在绘图之外,每个控件只需通过初始化它就可以使用它自己的窗口句柄。所以即使是不可见的或隐藏的,也会影响性能。

控制类型也有所不同。第三方或自定义控件有时由多个控件组成,每个控件都有自己的句柄。

通常在可用性上下文中预先考虑控制数量,这通常有助于避免性能问题。

【讨论】:

    【解决方案2】:

    不做任何性能测试很容易说太多控件有性能问题,

    • 内存使用量增加(UI 对象非常庞大)。
    • OnPaint 和其他消息库 方法将被调用(用于控制 或继承的父母 层次结构)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 2013-05-09
      • 1970-01-01
      • 1970-01-01
      • 2020-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多