Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Помогите разобраться с слабыми сылками


Автор: MERTVITz 6.1.2006, 13:24
Есть коллекция типа ArrayList в нем нахоходся какое то количество элементов в виде объектов как мне удалить элементы коллекции вместе с объектами иначи если не удалять объекты они висят в хипе и со временем все начинает притормаживать
Заренее пасибо

Автор: dronzo 6.1.2006, 13:50
Что-то я слабо понимаю, что требуется, но если я всё-таки правильно понимаю и по каким-то причинам требуется принудительно удалить объекты, которые больше не используются, то :
Код

GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();

Автор: MERTVITz 6.1.2006, 14:02
нужно удалить объекты на которые есть неявные сылки, тоесть
коллекция в которой есть объекты
_items.Add(new Item(_eventSender));
удаляем элементы коллекции
_items.RemoveRange(0, c);
но после удаления элементов объекты Item(_eventSender) остаются

Автор: Exception 6.1.2006, 19:37
Перебери foreach'ем ффсе элементы коллекции и присваивай им null?

Автор: Дрон 7.1.2006, 13:01
Exception
Это из VB smile

Цитата(MERTVITz @ 6.1.2006, 14:02 Найти цитируемый пост)

но после удаления элементов объекты Item(_eventSender) остаются

Правильно. Но когда на них не останется больше никаких ссылок, то их удалит сборщик мусора.

Максимум, что ты можешь сделать -- это вызвать Dispose для каждого объекта, если они реализуют IDisposable, но и то это не будет уделанием самого объекта.

ЗЫ: Кстати, слабые ссылки -- это совсем другое smile

Автор: Medved 8.1.2006, 03:09
http://www.dotsite.spb.ru/lectures/dotnet_5.ppt - Управление памятью в .NET (тут же сказано о том, что такое слабые ссылки)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)