Re: Вопрос про GC и ресурсы
От: andreich78 Россия  
Дата: 22.02.06 09:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Требуется такая логика работы:

А>Есть некий объект ResourceManager. По первому требованию от клиентского кода ResourceManager создёт некотрый объект Resource. Последующие запросы этого же ресурса другими клиентами возвращают тот же объект Resource. Когда все клиенты освободили ссылки на ресурс, объект Resource должен освободить занимаесые им физические ресурсы.

А>Проблема в реализации последнего требования: клиенты не имеют права вызывать Dispose у объекта Resource (ресурс совместно используется несколькими независимыми клиентами), а GC может вообще никогда не добраться до объекта Resource. Хотелось бы чтобы Resource освободил физические ресурсы сразу после исчезновения последного клиента.

пусть клиенты вызывают Dispose на здоровье, а ты поставь собственный счетчик ссылок на ресурс и прибивай ресурс в вызове последнего Dispos`а.
PS
и не путай Dispose с деструктором.
PS PS
а между удалением последней ссылки на объект и его автоматической сборкой может пройти уйма времени.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.