Здравствуйте, 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 поддержка этого режима отсутствует — контрол содержит в коллекции все итемы, итемы содержат текст ноды, и при создании нод (не проверял, но сомневаюсь, чтобы было иначе) текст ноды копируется, а не передается по ссылке.