![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 31.01.2016
Сообщений: 17
|
![]()
В окне находится DataGrid (не принципиально).
Данные в него приходят асинхронно из сокета. Интрвал примерно 5 сек +- 1 сек. При этом весь гуи "замерзает". Что можно сделать чтобы человек не ощущал этих тормозов? Другой контрол или как-то по хитрому обновлять? Сейчас данные биндятся по средствам ObservableCollection. Последний раз редактировалось chugada; 31.01.2016 в 21:49. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Как именно асинхронно? Код покажите.
Не должно ничего замерзать если работа с сокетом не в основном потоке происходит.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
![]()
deleteet
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 31.01.2016
Сообщений: 17
|
![]()
С сокетами все в порядке. Данные приходят, десериализуються в массив.
Но потом начинаем их в главном отправлять в коллекцию. И вот тут начинаются тормоза. вот код обновления коллекции Код:
Все конвертеры которые могли убрали из xaml и перенесли в инициализацию данных в момент после получения из сокета. В каждой строке грида есть несколько картинок, ректанглов, и еще всякие контрорлы, все это в соответствующих DataGridTemplateColumn. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
При каждом "Collection.Add(item);" вызывается NotifyCollectionChanged, который скорости вашему приложению явно не добавляет ))
Коллекцию надо менять целиком, а потом вызывать this.PropertyChanged("Collection") Код:
А в гриде у вас виртуализация включена? Если нет, то обязательно включите. Столбцов - по желанию, а строк вот прям обязательно надо
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 31.01.2016
Сообщений: 17
|
![]()
про NotifyCollectionChanged понятно, пробовали и пересоздавать коллекцию, но результат тотже. Тормоза именно при обновлении самого грида.
По поводу виртуализации, по умолчанию она уже включена если справка не врет или ее еще както надо ососбо настроить? |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]() Цитата:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
![]() |
![]() |
![]() |
#8 | |||
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]() Цитата:
Все равно уберите ужасный код с добавлением элементов поштучно и пересоздавайте коллекцию целиком Цитата:
Цитата:
----- Можно, конечно, лечить симптомы (асинхроный инвок в UI через диспетчер или IsAsync=true в биндинге), но это неправильный подход, вы и сами это прекрасно понимаете ![]()
Благодарить в репутацию. Проклинать — туда же
![]() Последний раз редактировалось Luuzuk; 31.01.2016 в 23:14. |
|||
![]() |
![]() |
![]() |
#9 | ||
Пользователь
Регистрация: 31.01.2016
Сообщений: 17
|
![]() Цитата:
В общем каждый item это объект и у которого есть еще своя внутренняя коллекция, в паре колонок есть еще свой "проход" по этой внутренней коллекции. Там элементов или 2 или 3, не больше не меньше. Цитата:
|
||
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Блин, самый главный вопрос забыл...
![]()
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[C# + WPF] Отлов нажатий клавиш, хуки, горячие клавиши в проекте WPF | Casper-SC | WPF, UWP, WinRT, XAML | 3 | 03.03.2017 15:00 |
КАк создать ГУИ интерфейс без среды? | Алексей_2012 | Общие вопросы C/C++ | 5 | 12.01.2016 07:20 |
Обновление таблицы БД SqlLite - C# WPF | Notan1310 | WPF, UWP, WinRT, XAML | 4 | 08.10.2015 14:34 |
WPF/ Обновление ItemsSource-а | ShoGUN | WPF, UWP, WinRT, XAML | 0 | 02.06.2014 18:34 |