Re: Найти кто ссылается на объект.
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 15.01.14 22:50
Оценка: -2 :)))
Здравствуйте, johny5, Вы писали:

J>Очевидно scene референсится где то ещё.


Неочевидно.
Если Scene поддерживает IDispose, то сборщик мусора не удаляет его сразу, а отдаёт другому потоку, который выполняет Dispose(). В этом случае объект может пережить несколько сборок мусора.

Даже если нет IDispose и нет ссылок, объект может пережить несколько сборок мусора, если GC уже пометил его как "generation 1". В книжке Effective C# говорится, что GC проверяет generation 0 при каждом запуске, generation 1 примерно раз в 10 запусков, generation 2 — примерно раз в 100 запусков. Той книжке уже лет 10, что-то могло поменяться, но общий смысл, думаю, остался — объект может пережить сборку мусора.

Запустите в цикле пару сотен сборок мусора и после этого проверьте WeakReference.
С уважением, Artem Korneev.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.