Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оперативная память 
:(
    Опции темы
granit1986
Дата 14.7.2009, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 17.6.2008

Репутация: нет
Всего: нет



возник вопрос, если я сделаю вот так

Код

public SqlDataAdapter da;
private void MainForm_Load(object sender, EventArgs e)
      {
         da = new SqlDataAdapter();
         da = new SqlDataAdapter();
         da = new SqlDataAdapter();
      }


и так много раз, то будет ли память забиваться или этот объект простто будет затираться и на его месте создаваться новый?
PM MAIL   Вверх
Skynin
Дата 14.7.2009, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

Репутация: 0
Всего: 10



Рекомендую разобраться с пониманием терминов "объект" и "ссылка на объект", и ответить на свой вопрос самостоятельно.
Можно начать с ПЕРЕМЕННЫЕ. Там о Си, но суть процесса - та же.
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
Irdis
Дата 14.7.2009, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 21.5.2008

Репутация: нет
Всего: 1



В .net когда пишется new интелект можно отключить, т.к. о распределении виртуальной памяти заботится виртуальная машина(а об оперативной ядро системы, к слову). 
Когда на обьект пропадают ссылки (простым языком, это момент когда обьект становится ненужным), память освобождается. 
В данном случае 
da= new ...//( объект)
da= new ...//( новый объект, на старый ссылка пропала-> он ненужен, освобождаем память и записывается в da новый объект)

Это сообщение отредактировал(а) Irdis - 14.7.2009, 13:33
PM MAIL   Вверх
mihryak
Дата 14.7.2009, 15:19 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 10
Всего: 36



Цитата(Irdis @  14.7.2009,  14:28 Найти цитируемый пост)
В .net когда пишется new интелект можно отключить

октлючаться никогда нельзя, а вот хорошо понимать, что там внутри происходит - нужно

SqlDataAdapter реализует интерфейс IDisposable, такие классы в подавляющем большинстве случаев стоит вручную "освобождать", вызывая этолт интерфейсный метод Dispose явно (в try-finally) или неявно (через using)
при работе с бд отсутствие этого вызова чаще всего приводит невозможности открытия нового соединения, т.к. старые не были закрыты явно, в более "тяжёлых" случаях эта проблема почти не проявляется, что может приводить к совершенно непредсказуемым и трудноотлавливаемым  последствиям

так что "доверяя - проверяй"

Добавлено через 1 минуту и 18 секунд
Цитата(Irdis @  14.7.2009,  14:28 Найти цитируемый пост)
da= new ...//( новый объект, на старый ссылка пропала-> он ненужен, освобождаем память и записывается в da новый объект)

память,кстати, тут не освобождается, просто на этот объект теряется ссылка, что даёт моральное право сборщику мусора его прибить
но вот когда именно он на него наткнётся - большой вопрос без ответа
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.