Я работаю над проектом схемы диаграммы (SL 3), и я вижу, что поток пользовательского интерфейса зависает, когда диаграмма строит около 2000 узлов и когда она делает это мин, а затем FPS упасть до обхода.Производительность Silverlight с большим количеством объектов Org Chart
Вот код потока. Page.xaml.cs вызывает службу wcf, которая возвращает список пользователей AD. Затем мы используем Linq для сборки набора узлов для привязки к Orgchart.cs
OrgChart.cs - это холст и отображает коллекцию узлов и соединительных линий.
Node.cs - это холст, и пользовательские данные могут содержать дочерние узлы.
NodeContent.xaml - это элемент управления пользователя, который имеет границы, поэтому я могу установить фон, текстовые блоки для отображения данных пользователя, события, которые обрабатывают выбранные и расширенные узлы, и раскадровки, которые изменяют размер узлов при их выборе или расширении. замеченный в часы отладки, здесь, в InitializeComponent(); где он загружает xaml, похоже, где происходит прецедент.
System.Windows.Application.LoadComponent (это новый System.Uri ("/ Silverlight.Custom; component/NodeContent.xaml", System.UriKind.Relative));
Итак, у меня есть два вопроса.
- Может ли резьбовая помощь каким-либо образом с зависанием нитей UI при рисовании узлов?
- Как я могу избежать удара при вызове этого пользовательского элемента управления?
Любые советы или рекомендации, которые кто-либо может предоставить, будут очень признательны.
Спасибо, KC