Ответ 1
Вы можете использовать это решение: http://www.japf.fr/2009/10/measure-rendering-time-in-a-wpf-application/
Я пытаюсь измерить производительность для приложения на основе WPF. В настоящее время у нас есть код, в котором сколько времени требуется, чтобы добавить контент в дерево рендеринга WPF. На этом этапе управление возвращается в нашу программу. Проблема в том, что по-прежнему существует отставание до того, как контент будет отображаться на экране WPF. Для сложных деревьев рендеринга это может быть секунд.
Можете ли вы порекомендовать метод для определения того, когда WPF завершил рендеринг на экране? Я бы хотел, чтобы эти тесты были полностью автоматизированы и не полагались на кого-то, сидящего вокруг с секундомером.
[обновление]
Спасибо за предложения до сих пор.
Я пробовал ожидание событий Loaded и ContentRendered, но оба они загораются до того, как содержимое выводит его на экран.
Похоже, что у других возникает эта проблема. Я попробовал шаги, предложенные в http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/693fbedb-efa6-413e-ab66-530c6961d3fb/, но до сих пор не удалось заставить мой код ждать завершения рендеринга.
Вы можете использовать это решение: http://www.japf.fr/2009/10/measure-rendering-time-in-a-wpf-application/
Вы посмотрели набор возможностей WPF? Возможно, вы сможете увидеть производительность и выявить проблемный код.
Вы должны использовать событие ContentRendered из окна.
Это будет срабатывать каждый раз, когда будет полная последовательность рендеринга, и вы можете это время.
Вы можете завершить таймер после события управления Loaded
, поскольку это происходит после завершения рендеринга.