是否可以测量Winforms表单出现的时间?

时间:2011-08-10 16:47:12

标签: c# winforms performance

我有一个winforms应用程序,并根据用户点击的内容不时弹出一些窗口。最近,用户一直在抱怨弹出窗口需要很长时间才能出现。如果我分析代码,或者放入秒表,我看到我的C#代码在大约50ms内完成了Show()方法的处理,但是窗口本身几乎不会出现。

有没有办法测量窗口实际出现之前的时间量?

2 个答案:

答案 0 :(得分:3)

我认为绘图完成后会显示Shown事件。

请参阅Form.Shown EventOrder of Events in Windows Forms

答案 1 :(得分:2)

测量第一次OnPaint通话之前的时间可能是一种方式。它被称为对WM_PAINT消息的响应,当应该重新绘制时,该消息由Windows发送到Window。如果您在base.OnPaint()调用之前和之后进行测量,您还可以查看实际绘图代码需要多长时间才能完成。