Krótki
Celem krótkim słabego odniesienia staje się zerowa, gdy obiekt jest odzyskane w śmieci. Słabe odwołanie samo w sobie jest obiektem zarządzanym i podlega wyrzucaniu śmieci tak samo, jak każdy inny zarządzany obiekt inny niż . Krótki, słaby odnośnik jest domyślnym konstruktorem dla WeakReference.
Długie
Długa słaby odniesienia zatrzymanych po Finalize metody obiektu została wywołana. Pozwala to na odtworzenie obiektu, ale stan obiektu pozostaje nieprzewidywalny. Aby użyć długiego odwołania, określ true w konstruktorze WeakReference.
Jeśli typ obiektu nie ma metody Finalize, krótki słaby funkcjonalność odniesienie stosuje i słabych odniesienia jest ważna tylko aż cel są zbierane, które mogą wystąpić w dowolnym czasie po finalizator jest prowadzony.
Aby ustanowić silne odniesienie i ponownie użyć obiektu, należy zastosować właściwość docelową obiektu obiektu WeakReference do typu obiektu. Jeśli właściwość Target zwróci wartość null, obiekt został zebrany; w przeciwnym razie, można nadal używać obiektu, ponieważ aplikacja ma odzyskała silne odniesienie do niego.
Wytyczne do użycia słabe odniesienia
pomocą długich słabe odniesienia tylko wtedy, kiedy to konieczne, jak stan obiektu nieprzewidywalny po zakończeniu. Unikaj używania słabych odniesień do małych obiektów, ponieważ sam wskaźnik może być tak duży, jak lub większy.
Unikaj używania słabych referencji jako automatycznego rozwiązania problemów związanych z zarządzaniem pamięcią . Zamiast tego należy opracować skuteczną strategię buforowania dla obsługi obiektów aplikacji.
jest dobrze wyjaśnione tutaj: http://stackoverflow.com/questions/310685/weak-references –