2012-02-15 66 views
2

我有一个控件(对于WPF和Silverlight),表示为条形图的数据。 (小图)。我想写一个应用程序,测量这个控件的性能。我尝试在循环中添加点并等待点将被渲染。如何测量WPF Silverlight FPS或渲染时间?

在WPF工作是:

//start measuring time 
for (int i =10, i<100, i++){ 
    chart.AddRandomPoint(i); //i - argument 
    System.Windows.Forms.Application.DoEvents(); 
} 
//finish measuring time 

但在Silverlight中,这是不可能使用System.Windows.Forms.Application.DoEvents()。

第二种方法是使用DispatcherTimer:

dicpatcherTimer_Tick(object sender, EventArgs e){ 
    chart.AddRandomPoint(i); 
} 

和订阅CompositionTarget.Rendering事件。在事件处理程序icrement计数器。 这个柜台的大价值表现出色。

我的问题是: 有可能加点,等待图表渲染时,马上加另一点等等?

第二种方式(使用DispatcherTimer对象和CompositionTarget.Rendering事件)是否正确。它可以显示性能吗? (我需要比较重构前后的性能)。

回答