Мягкие и фантомные ссылки приходят с Java, я верю. Длинная слабая ссылка (передается true для конструктора WeakReference C#) может считаться аналогичной Java PhantomReference. Если в C# есть аналог SoftReference, я не знаю, что это такое.
Слабые ссылки не продлевают срок службы объекта, что позволяет ему собирать мусор после того, как все сильные ссылки вышли из сферы действия. Они могут быть полезны для хранения больших объектов, которые дорого инициализируются, но должны быть доступны для сбора мусора, если они не активно используются.
Независимо от того, будет ли это полезно для уменьшения потребления памяти вашим приложением, будет полностью зависеть от специфики приложения. Например, если у вас умеренное количество кэшированных объектов, которые могут или не могут быть повторно использованы в будущем, слабые ссылки могут помочь улучшить потребление памяти в кэшах. Однако, если приложение работает с очень большим количеством мелких объектов, слабые ссылки затруднят работу, так как объекты-ссылки будут занимать столько же или больше памяти.
Используется ли в вашем приложении класс System.WeakReference? – MusiGenesis 2008-11-22 01:41:50