Обратите внимание, что это делается в WPF/C#
, а не в .net2.0
Winforms
У меня есть ListBox, который содержит объекты, скажем Class X
. Класс X содержит объект BitmapSource
, который отображается в списке, поэтому он выглядит как [Image] [Text]
Это загружается с помощью CreateBitmapSourceFromHBitmap
- обратите внимание также, что я звоню DeleteHBitmap
, чтобы удалить дескриптор HBitmap
во время этого вызова, что, как известно, из сообщений, которые я видел в Google / и т.д.
У меня есть дерево, которое содержит ListBox
в каждом TreeViewItem
- обычно в дереве загружено несколько элементов. Пользователи могут перетаскивать эти изображения в различные элементы TreeViewItem. Для обработки этих операций я вручную вызываю операции:
<code>
ItemCollection.RemoveAt
</code>
<code>
ItemCollection.Insert
</code>
до move
изображений из коллекции элементов ListBox, обратите внимание, когда я вставляю, я создаю новый объект Class X
для вставки в коллекцию элементов ListBox
Я заметил, что я получаю постоянную утечку памяти при вызове таких операций несколько раз в течение 5-10 минут последовательного перетаскивания.
Мой вопрос:
Правильно ли я справляюсь с перемещением BitmapSource
? Есть ли что-то, что я делаю, чтобы изображения не были полностью удалены из ItemCollection
?
Или есть что-то фундаментальное, что я пропустил?