Я использую компонент WPF DataGrid из платформы .NET 4, он связан с потокобезопасной наблюдаемой коллекцией, которую я нашел здесь: http://www.deanchalk.me.uk/post/Thread-Safe-Dispatcher-Safe-Observable-Collection-for-WPF.aspx
Программа представляет собой инструмент системного администратора, который пингует каждыйIP-адрес в диапазоне, если есть ответ, он создает объект в коллекции с некоторыми подробностями с компьютера.
Проблема, с которой я сталкиваюсь, заключается в низкой производительности.Первоначально я просто обновлял коллекцию и позволял сетке данных регистрировать изменения.Это вызвало проблему, когда элемент управления DataGrid не обновлялся и не отображал данные, пока я не прокручивал.
Итак, я добавил таймер для вызова метода обновления грида, таймер срабатывает каждые 750 мс.Это работало блестяще, пока я не понял, что пользовательский интерфейс программ полностью не отвечает, когда таймер включен и он сканирует.
Без таймера производительность приемлема, без нее это ужасно.Я безуспешно пробовал несколько значений для периода ожидания (до 2000 мс), а также убедился, что мои столбцы имеют фиксированную ширину (я читал, что автоматически созданные столбцы и ширина могут вызывать проблемы с производительностью).
Суммачисло строк в сетке составляет около 300 - 400 с 5 столбцами, так что это не совсем огромная сетка.
Есть ли у кого-нибудь какие-либо предложения о том, как я мог бы своевременно обновлять сетку, когда сбор задобавлено, без ущерба для производительности?