C # Обеспечение максимально плавного графического интерфейса - PullRequest
1 голос
/ 21 октября 2010

Я слишком упрощен, но, скажем, у меня есть WinForm с несколькими элементами управления (например: текстовое поле, древовидная структура и список).будущее (например, этот просмотр списка может в один прекрасный день содержать много данных), что нужно сделать в начале?

Мои знания такого рода вещей очень ограничены, но я предполагаю, что двойная буферизациярекомендуется?Я также слышал кое-что о переопределении метода OnPaint для некоторых элементов управления?

Спасибо, Зак

Ответы [ 2 ]

3 голосов
/ 21 октября 2010

При разработке новых приложений вам не нужно думать об этом.Если у вас возникнут проблемы позже, можно применить исправление, не разрушая работу, которую вы уже вложили в проект.Хотя я могу заверить вас, что 95% приложений не нуждаются в какой-либо специальной оптимизации в отношении элементов управления или рисования элементов управления, особенно в OnPaint.Удачи.

0 голосов
/ 21 октября 2010

Чтобы обеспечить максимально гладкую работу в будущем (например, , этот просмотр списка может в один прекрасный день содержать много данных ), что нужно сделать в начале?

1- Если вы собираетесь хранить огромные данные, попробуйте реализовать разбиение на страницы для данных.

2- Вы используете древовидную структуру, не пытайтесь загрузить все дерево в память.Использовать По требованию Загрузка дерева, т. Е. Показывать только корневые узлы, а когда пользователь щелкает, чтобы развернуть только узел, загружать данные.

3 - Если ваше приложение предоставляет функцию поиска узлов в дереве, чем пытаться запомнить это деревоэто особый вид графиков, поэтому используйте правильные алгоритмы графиков, такие как (DFS, BFS) для поиска в узле.

4 - Попробуйте переместить операции, которые занимают много времени в фоновом рабочем компоненте, это поддерживает уведомление на основе событийкоторый помогает вам отчитываться о ходе ваших операций.

5- Попробуйте использовать кэширование данных, не измененных в произвольном порядке. Если в меню есть предположение, что у вас есть winforms, отображающий раскрывающийся список стран, просто выберите данныеодин раз и сохраните его в памяти, так что вам не понадобится новый вызов базы данных каждый раз, когда вам нужны эти данные.

это очень начальные шаги, но может быть много других, таких как использование класса WeakRefernce дляваше древовидное представление.

Попробуйте прочитать оптимизацию производительности на MSDN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...