|
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 48
|
|
.NET 3.x Не освобождается память при закрытии дочерней формы25.11.2011, 20:56. Показов 7496. Ответов 10
Метки нет (Все метки)
Суть в следующем: имеется главная форма и дочерняя (ShowDialog()) .
При открытии дочерней формы происходит работа с базой данных и в массив записывается множество изображений. Как следствие - в диспетчере задач наблюдаю, что у приложения использование памяти подскакивает до 100 Mb. При закрытии дочерней формы - использование памяти по прежнему 100 Mb. При повторном открытии память подскакивает до 200 и т.д. Как это исправить? Пробовал перед закрытием формы вызывать очистку массива изображений images.Clear() , но не помогло. Как быть?
0
|
|
| 25.11.2011, 20:56 | |
|
Ответы с готовыми решениями:
10
Не очищается память при связи дочерней формы со статическим классом Ошибка при закрытии дочерней формы Вызвать событие при закрытии дочерней формы |
|
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
|
||||||
| 25.11.2011, 21:38 | ||||||
|
Есть метод Dispose() который освобождает все используемые ресурсы
0
|
||||||
|
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 48
|
|
| 25.11.2011, 21:43 [ТС] | |
|
0
|
|
|
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
|
|||||||
| 25.11.2011, 21:51 | |||||||
![]() А если попробовать загружать данные в dataGridView а не в массив , а потом вызывать
0
|
|||||||
|
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 48
|
||
| 25.11.2011, 22:07 [ТС] | ||
мой метод возвращает из базы массив Bitmap[]
0
|
||
|
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
|
||||||||
| 25.11.2011, 22:23 | ||||||||
А вообще правильно бы было узнать как освободить память у массива, но я вам тут подсказать не могу
0
|
||||||||
|
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
|
|
| 26.11.2011, 00:18 | |
|
без кода тут ничего нельзя сказать
может ты там на события главной формы вешаешь обработчики дочерней, или массив объявлен как статический либо не там dispose вызываешь, а может просто надо пройтись по массиву и вызвать dispose для каждого изображения
0
|
|
|
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
|
|
| 26.11.2011, 00:29 | |
|
Вообще сборщик мусора, даже после вызова Dispose(), не сразу очищает память, там он делает свою работу ,и когда будет время почистит и 100 мб. ) , ну и нужно для каждого Bitmap-а свой Dispose вызывать т.к dataGridView1.Dispose только для грида.
0
|
|
|
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 48
|
|
| 26.11.2011, 17:55 [ТС] | |
|
никуда я ничего не вешаю и массив не статический
делаю перед закрытием дочерней формы для каждого изображения в массиве dispose - память таки упала до 60 Mb (при первом запуске основного приложения память на уровне 10-12 метров находится, т.е. было 10, открыл/закрыл дочернюю стало ~60) При повторном открытии дочерней формы - память опять подскакивает до ~100 и при закрытии опускается до ~60 Кроме этого массива в дочерней форме других массивов нет. Не понимаю что может так мног занимать памяти, и как убить этот массив.
0
|
|
|
162 / 158 / 19
Регистрация: 22.11.2011
Сообщений: 371
|
|
| 26.11.2011, 19:08 | |
|
Попробуй свернуть/развернуть окно после второй итерации (когда ~60 MB используется) и посмотри на результат, а дальше уже посмотрим.
0
|
|
|
|
|
| 28.11.2011, 09:57 | |
|
desAlex, ну тебе же sau сказал, сборщик мусора запускается не сразу, это процесс спонтанный и непредсказуемый. Наибольшая вероятность запуска сборщика - необходимость в памяти. Загрузи свой комп так, чтоб оперативки свободной не осталось, и посмотри, что потребляет твоя прога.
http://msdn.microsoft.com/ru-r... 59wtx.aspx Добавлено через 1 минуту
0
|
|
| 28.11.2011, 09:57 | |
|
Помогаю со студенческими работами здесь
11
Закрытие форм при закрытии дочерней формы
Заполнение DataGrid при закрытии дочерней формы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|