mvc*_*bie 2 .net c# user-controls loading winforms
我的应用程序的主界面适中.具有Outlook类型计划控制.大约40个.NET基本控件.
如果所有这些都被放入表单本身,它加载速度快,一切看起来都很棒!
我最近将所有这些控件移动到用户控件中,然后通过反射,我从磁盘加载程序集然后将其转换为(Control)并在我的form_Load中调用以下内容:
this.Controls.Add(myUserCtrl);
Run Code Online (Sandbox Code Playgroud)
由于将所有内容都移动到用户控件中,我从2到3秒的加载时间到15到20秒的加载时间.即使我仍在加载相同数量的控件.
任何人都可以解释为什么将控件移动到UserControl会产生如此可怕的负载性能?
我已经尝试了一切,包括调用Suspend/Resume Layout功能.
将代码移动Form_Load到构造函数.
在Form_Load中,控件的句柄已经创建,因此所有更新都需要进行本机调用以更新实际的窗口句柄.
这可能很慢,取决于你正在做什么.(打电话BeginUpdate/ EndUpdate会有所帮助)
通过将代码移动到构造函数,您可以在创建句柄之前初始化所有内容.
根据您的代码所做的,这不一定有任何好处.
| 归档时间: |
|
| 查看次数: |
3879 次 |
| 最近记录: |