Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 26.01.2012, 17:16   #1
graffinchik
 
Регистрация: 26.01.2012
Сообщений: 8
Репутация: 10
По умолчанию WPF тормозит интерфейс.

Проблема вот в чем.
Сразу при открытии программы все работает шустро.
Программа запрашивает с сервера объемный список информации, после отображения которой в ListView, интерфейс программы начинает жестко тормозить на различных ивентах. Т.е. когда программа просто "стоит", процессор на нулях, а когда начинаешь например кликать мышкой по пустому месту на форме или открывать обычное меню, то процессор начинает жестко забиваться. Не смотря на то, что отрисовка списка и его листание идет очень даже хорошо. Тормозит все остальное.
Через тулу Visual Profiler мне удалось узнать, что процессор занимает "Dispatcher Invoke". В программе диспетчер используется. но даже если его убрать, ничего не меняется в производительности. В чем еще может быть проблема? может кто сталкивался с подобной? очень нужна помощь. Заранее огромное спасибо.
Через программку Snoop показало, что левых ивентов не генерируется. Теперь я вообще в замешательстве...
graffinchik вне форума   Ответить с цитированием
Старый 27.01.2012, 09:36   #2
Guy
Форумчанин
 
Регистрация: 15.12.2010
Адрес: yaroslavl
Сообщений: 398
Репутация: 129
По умолчанию

А что если тебе запустить Perfemence Profiler студийный и поглядеть участок(ки) кода которые сама студия скажет в твоих исходниках.
Guy вне форума   Ответить с цитированием
Старый 27.01.2012, 11:11   #3
Luuzuk
Участник клуба
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Адрес: Самара
Сообщений: 975
Репутация: 605

icq: З7ЧЗЗ89Ч5
По умолчанию

в ListView данных говоришь много? Если так, то у ListView в Xaml-коде пропиши VirtualizingStackPanel.IsVirtualizi ng="true". Иначе очень много времени будет тратиться именно на перерисовку листвью (в основном на подсчет высоты элементов)
__________________
Благодарить в репутацию. Проклинать — туда же

Последний раз редактировалось Luuzuk; 27.01.2012 в 11:15.
Luuzuk вне форума   Ответить с цитированием
Старый 27.01.2012, 12:17   #4
graffinchik
 
Регистрация: 26.01.2012
Сообщений: 8
Репутация: 10
По умолчанию

Проблема не в ListView. Вернее не в его отрисовке. И кстати он виртуализирован, листается отлично. Проблема во всем остальном интерфейсе. программа просто начинает грузить i5 на 20-25% при элементарных быстрых кликах по пустому месту форме, что не есть правильно.
graffinchik вне форума   Ответить с цитированием
Старый 27.01.2012, 12:23   #5
graffinchik
 
Регистрация: 26.01.2012
Сообщений: 8
Репутация: 10
По умолчанию

Perfemence Profiler попробовал. Он мне показал, что кушает процессор функция system.windows.Application.Run().
graffinchik вне форума   Ответить с цитированием
Старый 27.01.2012, 12:24   #6
Luuzuk
Участник клуба
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Адрес: Самара
Сообщений: 975
Репутация: 605

icq: З7ЧЗЗ89Ч5
По умолчанию

Телепатические способности кончились, теперь нужен код
__________________
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума   Ответить с цитированием
Старый 27.01.2012, 12:26   #7
graffinchik
 
Регистрация: 26.01.2012
Сообщений: 8
Репутация: 10
По умолчанию

тут кода....объемом с полфорума. проект большой. а вот ошибка какая-то необыкновенная.
graffinchik вне форума   Ответить с цитированием
Старый 27.01.2012, 12:36   #8
Luuzuk
Участник клуба
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Адрес: Самара
Сообщений: 975
Репутация: 605

icq: З7ЧЗЗ89Ч5
По умолчанию

Я и не прошу весь солюшн выкладывать
вьюхи и вьюмодели может оказаться достаточно.
Просто сам частенько упирался в производительность wpf/silverlight
__________________
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума   Ответить с цитированием
Старый 27.01.2012, 12:45   #9
graffinchik
 
Регистрация: 26.01.2012
Сообщений: 8
Репутация: 10
По умолчанию

Проблема я полагаю в чем.
Чем меньше элементов в список я загружаю, тем лучше работает программа. просто такое ощущение, что при любом ивенте каждый элемент списка пытается его отработать. но такого мне ни одна тула не показало. но тут возникает вопрос! как элементы могут на них реагировать, если я не по ним кликаю, а вообще по пустому месту?
И повторюсь. Сам список, т.е. его листание, работает нормально.
graffinchik вне форума   Ответить с цитированием
Старый 27.01.2012, 13:17   #10
Luuzuk
Участник клуба
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Адрес: Самара
Сообщений: 975
Репутация: 605

icq: З7ЧЗЗ89Ч5
По умолчанию

Есть такая вещь в WPF, как RoutedEvents. Без кода вам здесь вряд ли помогут
__________________
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C# + WPF] Отлов нажатий клавиш, хуки, горячие клавиши в проекте WPF Casper-SC WPF, UWP, WinRT, XAML 3 03.03.2017 16:00
разработать интерфейс для дисков - интерфейс програмный Notformal Помощь студентам 0 01.11.2011 22:52
Динамический интерфейс WPF MaxMelnikov Помощь студентам 0 21.01.2011 18:09
класс Screen в WPF. Есть ли такой? [?] Не добавлять же сборку Forms в WPF Casper-SC Общие вопросы .NET 2 30.07.2010 15:10


23:56.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru