Как вы храните список объектов в C #, который не мешает сборке мусора? - PullRequest
0 голосов
/ 09 июня 2010

Я пытаюсь сохранить список объектов в классе Manager в C #.Обычно потребительский класс регистрируется в классе Manager, а управляющий класс поддерживает коллекцию ссылок на потребительский класс.Теперь, насколько мое (ограниченное) понимание GC, сохранение ссылки на потребительский класс предотвратит сборку потребительского класса.

То, что мне нужно, это способ сохранить ссылку на класс в классе менеджера, который может указывать или не указывать на класс потребителя (определяемым образом) в зависимости от того, был ли он собран мусором.Как это сделать в c #?

Ответы [ 2 ]

5 голосов
/ 09 июня 2010

Вы можете использовать класс WeakReference , чтобы создать «слабую» ссылку на объект.То есть объект будет кандидатом на сбор, если на него ссылаются только сильные ссылки.

Если на него не ссылаются сильные ссылки (только слабые), тогда сборщик мусорабудет считать его кандидатом на сборку мусора.

4 голосов
/ 09 июня 2010

Вы ищете слабые ссылки .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...