3

大量のデータ(100000エントリ以上)を処理するWPFコンポーネントのいくつかの競合するフレームワークを評価します。したがって、実際のパフォーマンスの時間を計る必要があります。私たちのソフトウェアはすべて厳密にMVVM/データバインディング駆動型であるため、それが私が使用するテスト環境です。必要なのは、ビューモデルが値を設定してからビューによるレンダリングが終了するまでの時間を測定する方法を見つけることです。見た目は数秒かかりますが、正確に測定したいのですが。

もちろん、プロパティを設定するときにストップウォッチを開始することはできますが、レンダリングの準備ができていることを確認するにはどうすればよいですか?このためのイベントか何かがありますか?

4

1 に答える 1

8

正確な測定値が得られない可能性がありますが、簡単な方法はディスパッチャーを使用することです。

var sw = new StopWatch();
sw.Start();
//Set value and raise property changed
Dispatcher.CurrentDispatcher.BeginInvoke((Action)(() =>
{
   sw.Stop();

}), System.Windows.Threading.DispatcherPriority.Loaded);

ロードされた優先度はレンダリングの優先度のすぐ下にあるため、ビューがレンダリングされた後、ストップウォッチは停止します。

于 2012-12-17T10:53:53.190 に答える