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


A>>пусть клиенты вызывают Dispose на здоровье, а ты поставь собственный счетчик ссылок на ресурс и прибивай ресурс в вызове последнего Dispos`а.

А>Тогда нужно абязать клиентов вызывать некий AddRef, парный Dispose(). Ведь клиенты могут передавть ссылку на ресурс друг гругу. Вообще-то это криво: возвращяться к глючному ручному подсчёту ссылок в стиле "COM без смарт-указателей".
где ж тут кривизна? все вызовы создания проходят через ResourceManager, пусть и все вызовы удаления через него проходят — подсчет ссылок не составит труда.

A>>и не путай Dispose с деструктором.

А>С чего ты взял что я не путаю. Если следовать общепринятой семантике Dispose, то этот метод должен перевести объект в некое предсмертное состояние, в котором при любом вызов приводит к ObjectDisposedException.
по моему, это не так. хотя я могу ошибаться...
вот код. вроде не падает...
System.Drawing.SolidBrush br = new SolidBrush(Color.LightGreen);
br.Dispose();
br.Dispose();

А>Это вряд ли понравится остальным клиентам.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.