Являются ли слабые ссылки C # на самом деле мягкими?

Основное отличие состоит в том, что слабые ссылки предполагаются должны быть востребованы при каждом запуске GC (сохраняйте низкий объем памяти), в то время как мягкие ссылки должны храниться в памяти до тех пор, пока GC действительно не потребует память (они пытаются увеличить время жизни, но могут потерпеть неудачу в любое время, что полезно, например, для кешей, особенно довольно дорогие объекты).

Насколько мне известно, нет четкого заявления о том, как слабые ссылки влияют на время жизни объекта в .NET. Если они действительно слабые рефери, они не должны вообще влиять на него, но это также сделало бы их бесполезными для их, я считаю, основной цели кеширования (я ошибаюсь?).С другой стороны, если они действуют как мягкие рефери, их имя вводит в заблуждение.

Лично я полагаю, что они ведут себя как мягкие ссылки, но это всего лишь впечатление, а не обоснованность.

Конечно, применимы детали реализации. Я спрашиваю о менталитете, связанном со слабыми ссылками .NET - могут ли они увеличивать время жизни или ведут себя как настоящие слабые ссылки?

(Несмотря на ряд связанных вопросов, я пока не смог найти ответа на этот конкретный вопрос.)

18
задан mafu 13 October 2011 в 14:46
поделиться