我有一个需要太长时间才能加载的winform。该表格有大量的控件,我想看看每个控件加载多少时间。 如果它是一个网络应用程序,我会打开跟踪,但我在winforms中找不到类似的东西 有什么想法吗? 感谢。
答案 0 :(得分:2)
实际上加载速度很慢。无论您创建多少控件,构造函数通常都很快。如果您有Load事件处理程序,则可以轻松测量使用Stopwatch类或分析器所需的时间。
不,对于具有大量控件的表单感知缓慢的最常见原因仅仅是绘制控件所需的时间很长。这很快发生,你开始注意到50个控件。这与Microsoft Outlook使用的子窗口一样多。每个控件绘制自身所需的时间是可以预测的。它的外观越复杂,所需的时间就越长。您可以执行的一项简单测试是观察最小化时间,然后恢复表单所需的时间。如果那也很慢那么它就是绘画的瓶颈。
没有什么可以让你神奇地加快速度。不只是使用较少的控件。例如,Label对于它所做的工作来说特别昂贵,您可以使用OnPaint方法中的一行代码替换它。像Telerik这样的组件供应商专门销售不使用窗口的控件。
答案 1 :(得分:0)
可能是一个相关问题,可以帮助您跟踪/登录WinForms: How do I create an automatic UI event trace in winforms?
您也可以看一下:Writing trace information in a windows form app
希望它有所帮助!
答案 2 :(得分:0)
我的猜测是有一些需要花费最长时间才能加载,因为他们必须连接到远程服务器。
尝试禁用最可能的嫌疑人并查看是否可以提高您的效果。这应该。 然后,一次启用一个遥控器,看看哪个控件的速度明显减慢。
可能不是。可能有6个控件,每个控件需要5秒钟才能加载。我怀疑你需要精确的追踪信息,只需要了解哪些控件是性能最差的杀手。