我需要测量WPF多线程应用程序的性能,结果如下:
1.在UI中触发buttonClick - > UI线程开始处理它
2. UI线程在后台启动另一个线程,它在后台异步执行某些操作,并在准备好后将结果传递回ui线程
3.发生数据绑定
4.发生渲染
我知道线程的数量,顺序不是。 我如何测量buttonClick和渲染结束之间的时间? UI线程在完成后触发事件或引发属性吗?或者,如果没有,我可以做到吗? 任何帮助都会得到解决。
答案 0 :(得分:1)
我在http://www.kynosarges.de/WpfPerformance.html找到了可能有用的内容:
我们无法直接访问渲染线程,但WPF确实提供了一个 间接访问点,即通过 CompositionTarget.Rendering事件。这个事件通常会发生 监控刷新率(通常为每秒60次),无论是否存在 任何要渲染的新内容。它主要用于定制 需要尽快生成显示更新的动画 监视器可以显示它们。
答案 1 :(得分:0)
我希望这个链接可以帮到你 WPF Threads
答案 2 :(得分:0)
您必须查看WPF Performance Suite,尤其是Perforator和Visual Profiler。 在VisualProfiler上,您可以拥有“应用程序CPU使用情况详细信息”部分,其中一部分是:
渲染(MediaContext)在渲染过程中发生。这种方法 最终调用每个元素的OnRender方法,并且很有用 了解OnRender所有元素的总成本......
或
渲染线程在执行渲染指令时发生 渲染线程。这对于检测渲染绑定很有用 应用
希望这有帮助。