2013-03-17 11 views

risposta

24

Secondo this:

Normalmente Non si può dire se un oggetto è stato garbage collection utilizzando alcuni riferimento all'oggetto, perché una volta che hai un riferimento all'oggetto, non sarà garbage collection .

È possibile invece creare un riferimento debole a un oggetto utilizzando l'oggetto WeakReference. Il riferimento debole è uno che non verrà conteggiato come riferimento, ai fini della garbage collection.

Nel codice qui sotto, controlliamo prima e dopo la garbage collection per mostrare che un oggetto Dog è garbage collector.

 Dog dog = new Dog("Bowser"); 

     WeakReference dogRef = new WeakReference(dog); 
     Console.WriteLine(dogRef.IsAlive); 

     dog = null; 
     GC.Collect(); 

     Console.WriteLine(dogRef.IsAlive); 

enter image description here

Problemi correlati