![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Gazon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 9.1.2005 Репутация: 3 Всего: 8 |
Используются CF 2.0 и Win 2003(или Win Mobile 5).
Как вообще обстоят дела с памятью у CF 2.0? Проблема в том, что память в программе не освобождается, доходит до outofmemoryexception. В приложении не использую никаких не управляемых ресурсов. В приложении надо часто создавать и показывать объекты модальной формы одного и того же класса с разными результатами выборки. Форма делает запрос в базу, строит дерево по выборке(создаются типизированные коллекции), после этого коллекции обрабатываются и создаются таблицы и гриды для редактирования данных. После этого результаты сохраняются, форма закрывается. И так происходит несколько раз. Ссылка на форму существует только одна и каждый раз ссылка обнуляется при закрытии формы и под ссылку выделяется новый объект при сл. создании формы. Но память не освобождается после каждого закрытия формы и в один момент вылетает outofmemoryexception. Все попытки обнулять все возможные ссылки внутри формы(хотя ссылка на форму при ее закрытии обнуляется), и попытки вызвать GC.Collect ни к чему не приводят. --------------------
Чем больше узнаешь, тем больше не знаешь, но до истины всегда можно добраться. |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Возможно, форму держит в памяти подписка на её события. Вообще, желательно убедиться что везде где есть обработчики событий между различными объектами, подписавшийся объект отписывается от всех событий других объектов при Dispose.
-------------------- ![]() |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 7 Всего: 93 |
Gazon, если проблема исключтельно в форме (т. е. без нее все ок), то попробуй
Добавлено @ 22:33 зы. потоков всмысле файловых\сетевых и им подобным ![]() Добавлено @ 22:37 а вообще, имхо, лучше сделать для себя правилом, что если класс реализует IDisposable, то нужно заключать код, использующий его экземпляры в using. это не всегда получается - структура программы иногда не позволяет, но лучше делать все возможное, чтобы избегать такой структуры программы, особенно на CF -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
-ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 5 Всего: 13 |
господа, а разве соединение с базой не есть неуправляемый ресурс? Gazon, у тебя коннекшн к базе закрывается? -------------------- "Тонкая, однако, работа." |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Это как раз таки управляемый ресурс. Отличие между неуправляемым и управляемым состоит в том, что управляемый ресурс рано или поздно будет удалён сборщиком мусора (для всего, что было выделено, есть финалайзер который закроет соединение с БД и т.п.), а неуправляемый - нет (например, IntPtr к объекту ОС). З.Ы. это не отменяет предыдущий вопрос -ser-, закрывать коннекшн надо. -------------------- ![]() |
|||
|
||||
Gazon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 9.1.2005 Репутация: 3 Всего: 8 |
все. победил.
--------------------
Чем больше узнаешь, тем больше не знаешь, но до истины всегда можно добраться. |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |