如何解决WinForms Performance Case:动态表单创建+绑定
| 我正在努力改进现有的Winforms项目。 我现在有点想念想法,所以我想在这里撒些细节,看看人们能提出什么建议。 表单如下所示: 我们有一个列表(从数据库中得到),该列表使用完全限定的名称空间定义要创建的控件。 控件(基本上是用户控件)是通过反射依次创建的,并最终添加到窗体的面板上。 现在,每个控件都可以包含更多内容,最后是树状的控件层次结构。 每个控件都有自己的初始化,最后,将DataSet作为数据源提供给表单(和所有控件), 并添加数据绑定并在每个绑定上进行数据绑定。 特别是在某些情况下,我们将特定的ROW绑定到控件而不是DataTable / Set。 因此,期望BindingManager Position调用确定确切的行等。 约有30个用户控件,打开新表格的效果约为10秒, DataSet几乎不包含任何数据。绑定大约需要3-4秒。 在复杂的数据状态下,我们说的是30-40秒的开放时间, 绑定大约需要一半的时间。 现在,这非常简化,我敢打赌,我们有很多自己的代码会导致速度变慢, 而且我已经对其进行了分析,以了解一些景点。 但是性能的主要问题似乎是绑定。 我希望听到一些有关如何深入研究并发现此类性能问题的建议, 尤其是一种分类混乱的方法,这种混乱是数百种绑定失效的原因。解决方法
是时候从数据库中检索所有设置了呢?
反射->反射发出,性能良好,但是编码是皮塔饼。
如何将构建过程分为2个部分:
第一个仅仅是构造所有项目,数据项目将是未绑定/空的
然后下一轮是数据绑定部分。
这样做,假设数据绑定很慢,至少ppl可以在屏幕上看到弹出的东西。
您可以给出理由/借口,说数据绑定总是很烂,或者您可以分别研究问题的这一部分。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。