|
Listing 4-14 extracted from chapter The CLR (Common Languages Runtime)
Listing 4-13< > Listing 4-15
This listing can be compiled with the command line: csc.exe /target:exe Example_4_14.cs Errors: 0 Warnings: 0
Example_4_14.cs
class Program {
public static void Main() {
// 'obj' is a strong reference on the object
// created by this line.
object obj = new object();
// 'wobj' is a weak reference on our object.
System.WeakReference wobj = new System.WeakReference(obj);
obj = null; // Discard the strong reference 'obj'.
// ...
// Here, our object might potentially be deallocated by the GC.
// ...
// Build a strong reference from the weak reference.
obj = wobj.Target;
if (obj == null) {
// If the thread pass here, it means that the object
// has been deallocated by the GC!
}
else {
// If the thread pass here, it means that the object
// hasn't been deallocated by the GC. We can thus use it.
}
}
}
Copyright Patrick Smacchia 2006 2007
|