gpt4 book ai didi

c# - 如何强制 WeakReference 死亡?

转载 作者:太空狗 更新时间:2023-10-30 00:41:51 30 4
gpt4 key购买 nike

我想这样做是为了测试我的代码。我想我可以围绕弱引用对象制作另一个包装器,但更愿意直接工作以模拟原始对象被回收。

这是我目前的代码

 var myString = "someString";
var myStringRef = new WeakReference(myString);
myString = null;
GC.Collect();
Assert.IsFalse(myStringRef.IsAlive) //I want this to pass, but it failed. IsAlive is still true.

我该怎么做才能强制上面的最后一行不失败(即 !IsAlive)

我有一些框架逻辑可以根据弱引用的状态进行管理。我希望能够测试该逻辑,为此,我需要能够随意更改弱引用状态 - 那么我该怎么做呢?

最佳答案

我想知道这是否与字符串被驻留这一事实有关,因为以下测试通过了:

    var myObject = new object();
var myObjectRef = new WeakReference(myObject);
myObject = null;
GC.Collect();
Assert.IsFalse(myObjectRef.IsAlive);

关于c# - 如何强制 WeakReference 死亡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18387560/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com