Я нашел в чем баг! Controls.Clear не удаляет объекты из пам.

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Я нашел в чем баг! Controls.Clear не удаляет объекты из пам.

Сообщение Maitris » 27.01.2007 (Сб) 19:14

В отдельной процедуре, которая к примеру, называется AddItemsToColls, создаю контролы, вроде Dim x as LinkLabel, меняю свойства, и конечно же добавляю их в панель ссылок: pnlLinks.Controls.Add(x).
При следующей загрузке делаю pnlLinks.Controls.Clear. Эксперементально установил, что Clear не удаляет x из пямяти!
В результате при паре сот прокачек возникает Win32 Exeption.
Как же их удалять полностью? Пробовал так:
For Each ctl As LinkLabel In pnlLinks.Controls
ctl.Dispose
Next
Но возникает NullReferenceExeption!
----

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 27.01.2007 (Сб) 23:48

Приведи больше кода, плюс сообщи версию .NET FW. Как определяешь, что именно памяти не хватает и где она расходуется.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 29.01.2007 (Пн) 11:37

Фрейм 1.1. Что именно нужно привести? Вроде все что относится к теме выложил.
----

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 29.01.2007 (Пн) 23:42

Clear и не должен очищять паамять)))) Он очищяет коллекцию.

форму с кодом приложи
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 31.01.2007 (Ср) 16:11

Sebas, да я понял уже, надо RemoveHandler, Clear и Dispose для каждого элемента.
Если обычно перечислить - то NullReference, если if not objLink is nothing, то удаляется только половина ссылок! Не пойму в чем причина )
----

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 02.02.2007 (Пт) 18:30

И это все берет много времени, минимум в два раза больше. Вот сделать бы неактивный поток, который во время простоя очищал бы ссылки из памяти...
----

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 10.02.2007 (Сб) 11:22

Maitris писал(а):Sebas, да я понял уже, надо RemoveHandler, Clear и Dispose для каждого элемента.
Если обычно перечислить - то NullReference, если if not objLink is nothing, то удаляется только половина ссылок! Не пойму в чем причина )



Дык, правильно! Удалять то надо по индексу и по убыванию))))))
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 13.03.2007 (Вт) 23:14

Sebas писал(а):Дык, правильно! Удалять то надо по индексу и по убыванию))))))


Подробнее
----

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 15.03.2007 (Чт) 0:37

for i=controls.count-1 to 0 step-1
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 24.03.2007 (Сб) 18:32

Sebas, гм., я вроде постил что вопрос не в том, как очистить по убыванию, а почему именно так, и где это упоминается.
Видимо, последний пост ушел вместе с лагом...
----


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 45

    TopList  
cron