Например, я создаю Canvas, который содержит большое количество фигур, например:
var canvas = CreateCanvasThatContainsShapes();
Затем я добавляю все полотно на главную страницу:
layoutRoot.Content = canvas;
Это займет не так много времени для запуска этих двух строк кода, но потребуется время, чтобы все фигуры отобразились на экране, и пользовательский интерфейс некоторое время не будет отвечать.
В 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, тогда как я могу сделать то же самое?
Спасибо