Re[7]: Создание ListView
От: andreich78 Россия  
Дата: 02.08.05 10:21
Оценка:
Здравствуйте, Visor2004, Вы писали:

V>Здравствуйте, andreich78, Вы писали:


A>>Здравствуйте, Visor2004, Вы писали:



A>>>>оптимизни алогоритм отрисовки айтемов, т.е. прорисовки бак-граундов сведи к перерисовки только Clip пространств... и т.д.


V>>>Это все там уже реализовано и много чего еще, но суть в том, что стандарные подходы к оптимизации рисования тут не подойдут, тут надо придумать, другой подход, основанный на кэшировании мне кажеться.


A>>виндовый контрол во первых не использует хранение итемов в самом себе, а во-вторых сильно заточен под показывание файловой системы. под дотнетом 1.1 (без использования API) ты не добьешься такого быстродействия. в 2.0 уже есть поддержка "виртуальных" ListView, так что там это вполне осуществимо. особено, если использовать какой-нить unsafe, чтобы он данные не копировал лишний раз, а брал их как задумывалось, по указателю.


V> Что значит "Виртуальный" ListView. А на счет производительности, то я уже писал, что это алгоритмическая проблема, а не проблема инструментария.

A>>виндовый контрол во первых не использует хранение итемов в самом себе
V> А где же он хранит структуры, в кот. храниться указатель на строку, индекс иконы и указатель на данные пользователя.
A>>чтобы он данные не копировал лишний раз, а брал их как задумывалось, по указателю.
V> Никакие данные у меня не копируются, а берутся именно по указателю, по ссылке т.е.

виртуальными они (MS здесь описание в разделе "Virtual List-View Style") называют контролы, не хранящие отображаемые данные, контрол только дергает обработчика и получает все необходимые параметры (именно указатель на строку, индекс иконы и указатель на данные пользователя), обработчик тоже не дергается без особой надобности, что тоже увеличивает быстродействие. в 1.1 поддержка этого режима отсутствует — контрол содержит в коллекции все итемы, итемы содержат текст ноды, и при создании нод (не проверял, но сомневаюсь, чтобы было иначе) текст ноды копируется, а не передается по ссылке.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.