如何测试一个对象是否已被处理和GC'

本文关键字:处理 GC 是否 何测试 测试 一个对象 | 更新日期: 2023-09-27 18:07:30

我正在编写一些代码来删除一个对象,并希望有一个单元测试来确保该对象总是被删除。最好的方法是什么?如果GC工作,您不应该持有任何引用,那么如何在没有引用的情况下进行测试?

如何测试一个对象是否已被处理和GC'

一般情况下无法测试对象是否已被处置。

WeakReference可能是你正在寻找的东西。您可以创建一个WeakReference作为测试的一部分,并且在您的代码运行之后:

WeakReference wr = new WeakReference(obj);
GC.Collect();
Assert.IsTrue(!wr.IsAlive);