我有一个winforms应用程序,并根据用户点击的内容不时弹出一些窗口。最近,用户一直在抱怨弹出窗口需要很长时间才能出现。如果我分析代码,或者放入秒表,我看到我的C#代码在大约50ms内完成了Show()方法的处理,但是窗口本身几乎不会出现。
有没有办法测量窗口实际出现之前的时间量?
答案 0 :(得分:3)
我认为绘图完成后会显示Shown事件。
答案 1 :(得分:2)
测量第一次OnPaint
通话之前的时间可能是一种方式。它被称为对WM_PAINT
消息的响应,当应该重新绘制时,该消息由Windows发送到Window。如果您在base.OnPaint()
调用之前和之后进行测量,您还可以查看实际绘图代码需要多长时间才能完成。