我如何知道对象是否已被垃圾收集?
问问题
8493 次
1 回答
42
据此:_
您通常无法通过对某个对象的引用来判断该对象是否已被垃圾回收——因为一旦您拥有对该对象的引用,它就不会被垃圾回收。
您可以改为使用 WeakReference 对象创建对对象的弱引用。出于垃圾收集的目的,弱引用不会被视为引用。
在下面的代码中,我们在垃圾回收之前和之后检查以表明 Dog 对象已被垃圾回收。
Dog dog = new Dog("Bowser");
WeakReference dogRef = new WeakReference(dog);
Console.WriteLine(dogRef.IsAlive);
dog = null;
GC.Collect();
Console.WriteLine(dogRef.IsAlive);
于 2013-03-17T11:41:35.300 回答