Можно ли измерить, сколько времени потребуется для появления формы Winforms? - PullRequest
2 голосов
/ 10 августа 2011

У меня есть приложение winforms, и время от времени появляются некоторые окна в зависимости от того, на что нажимает пользователь. В последнее время пользователи жалуются на то, что всплывающие окна появляются слишком долго. Если я профилирую код или вставлю секундомер, я вижу, что мой код C # завершает обработку метода Show () примерно через 50 мс, но само окно не будет отображаться в течение почти секунды.

Есть ли способ измерить это количество времени, пока окно действительно не появится?

Ответы [ 2 ]

3 голосов
/ 10 августа 2011

Я думаю, что событие Показано срабатывает после завершения рисования.

См. Form.Shown Событие и Порядок событий в Windows Forms

2 голосов
/ 10 августа 2011

Измерение времени до первого OnPaint вызова может быть способом. Он вызывается как ответ на сообщение WM_PAINT, которое отправляется Windows в окно, когда оно должно быть перерисовано. Если вы выполните измерение как до, так и после вызова base.OnPaint(), вы также сможете увидеть, сколько времени требуется для выполнения действительного кода чертежа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...