【发布时间】:2011-06-17 04:26:48
【问题描述】:
例如,我创建了一个包含大量形状的 Canvas,如下所示:
var canvas = CreateCanvasThatContainsShapes();
然后我将所有画布添加到主页:
layoutRoot.Content = canvas;
这两行代码运行所需的时间并不多,但所有形状都需要一段时间才能显示在屏幕上,并且 UI 会在一段时间内无响应。
在 WPF 中,我可以通过执行以下操作来测试可视化树的渲染时间:
//create logic tree and add it to main page
stopWatch.Start();
Dispatcher.BeginInvoke(new Action(()=>{
stopWatch.Stop();
//Show the ellipsed time
}),DispatcherPriority.Loaded);
这样,Stopwatch 在逻辑树创建后启动,在可视化树渲染(加载)后停止。
但是在silverlight中,没有DispatcherPriority,那我该怎么做类似的事情呢?
谢谢
【问题讨论】:
标签: wpf silverlight performance dispatcher visual-tree