我将评估WPF组件的几个竞争框架,这些组件处理大量数据(100000个条目及以上)。因此,我需要时间真正的表现。由于我们所有的软件都是严格的MVVM /数据绑定驱动,这就是我使用的测试环境。我需要的是找到一种方法来测量我的视图模型之间的时间设置一些值和视图的渲染结束。视觉上需要几秒钟,但我想要精确测量。
我当然可以在设置属性时启动秒表,但是如何找到渲染准备好了?是否有事件或其他事情?
答案 0 :(得分:8)
也许它不会给你准确的措施,但一个简单的方法就是使用Dispatcher
var sw = new StopWatch();
sw.Start();
//Set value and raise property changed
Dispatcher.CurrentDispatcher.BeginInvoke((Action)(() =>
{
sw.Stop();
}), System.Windows.Threading.DispatcherPriority.Loaded);
加载的优先级正好在渲染优先级之下,因此在渲染视图后秒表将停止。