たとえば、次のような大量のシェイプを含むキャンバスを作成します。
var canvas = CreateCanvasThatContainsShapes();
次に、すべてのキャンバスをメイン ページに追加します。
layoutRoot.Content = canvas;
この 2 行のコードを実行するのにそれほど時間はかかりませんが、すべての形状が画面に表示されるまでには時間がかかり、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);
このように、ストップウォッチはロジック ツリーが作成された後に開始され、ビジュアル ツリーがレンダリング (ロード) された後に停止します。
しかし、Silverlight には DispatcherPriority がありません。
ありがとう