| 

.NET C# Java Javascript Exception

2
Durch einen Beitrag von Golo Roden in der letzten dotnetpro bin ich auf die .Net Klasse "WeakReferenz" aufmerksam geworden. Leider wurden hierzu nur wenige Sätze gesagt also bin ich neugierig geworden und hab mir in der MSDN einiges dazu durchgelesen (Schwache Verweise).

Das Prizip habe ich verstanden. Nur habe ich nach wie vor keine Idee wo man die WeakReference in der Praxis einsetzen kann. Was wäre ein Szenario wo ich denke "Oh da ist es am elegantesten die WeakReference einzusetzen"?
News:
04.04.2011
Thomas Sczyrba 1,4k 1 2 9
1 Antwort
5
Man sollte Weak-Referenzen verwenden, wenn z.B. auf Objekte verwiesen wird, die an anderer Stelle verwaltet (und damit auch zersört) werden. So kann die Garbage Collection z.B. alle Steuerelemente eines Fensters (in WPF) freigeben, selbst dann, wenn außerhalb des Dialogs auf diese Steuerelemente verwiesen wird. Ohne Weak-Referenz würde das Steurelement im Speicher bleiben, bis das referenzierende Element gelöscht wird.

Eine konkretere Anwendung wäre ggf. das Tracing. So könnte ein Trace-Ziel in ein Steuerelement schreiben. Da das Ziel ja nicht nach jeder Ausgabe gelöscht und für eine weitere Ausgabe neu erzeugt wird, kann eine Weak-Reference verwendet werden, so dass das Steurelement freigegeben werden kann. Das Trace-Ziel müsste dann vor der Ausgabe prüfen, ob das Ziel noch existiert.

Eine weitere Möglichkeit wäre z.B. eine zentralisierte Prüfung von Benutzereingaben, wo die Prüfobjekte auf die Steuerelemente verweisen.

Ich habe bisher immer Möglichkeiten gefunden, das ohne "hängende" Verweise zu implementieren, aber es wären denkbare Anwendungsfälle.
04.04.2011
Andreas Ganzer 1,4k 1 8

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH