diesen Code vor:Wie das Ziel eines schwachen Verweis auf eine sichere Art und Weise zu bekommen
var weakRef = new WeakReference(new StringBuilder("Mehran"));
if (weakRef.IsAlive)
{
// Garbage Collection might happen.
Console.WriteLine((weakRef.Target as StringBuilder).ToString());
}
Es ist möglich, für GC.Collect
nach weakRef.IsAlive
Prüfung ausgeführt und vor dem weakRef.Target
verwenden.
Bin ich falsch damit? Wenn es möglich ist, gibt es einen sicheren Weg, das zu tun? B. eine API wie weakRef.GetTargetIfIsAlive()
wäre angemessen.
Überprüfen Sie http://msdn.microsoft.com/en-gb/library/ms404247.aspx –
Sie sollten zuerst zu einer starken Referenz und dann nach "null". Sie können sicher sein, dass Ihre starke Referenz nicht null ist. –