gpt4 book ai didi

c# - 处置不被调用

转载 作者:行者123 更新时间:2023-12-02 15:33:15 25 4
gpt4 key购买 nike

我在这里看到了一些关于在对象超出范围时处理对象的方法的帖子,但我尝试过的似乎都不起作用。

我创建了一个loadingscreen 类,因此我在表单的xxx_load 函数中声明该对象。我希望当对象超出范围时自动处理该对象,以便自动隐藏加载屏幕。

这是我的加载类

public class Loader : IDisposable
{
public Loader()
{
Form.Loadscreen();
}

public void Dispose()
{
Dispose(true);
}

protected virtual void Dispose(bool disposing)
{
Form.UnloadScreen();
}
}

这是我在代码中使用它的方式。

using (Loader loader = new Loader())
{
//... do some loading processing

loader.Dispose();
}

尽管我可以验证 loader.Dispose() 正在被调用,但有时对象仍然没有被释放。

有什么建议吗?

最佳答案

首先,您不需要显式调用 loader.Dispose():这就是 using block 背后的全部要点(它调用 Dispose 自动)。

其次,“对象没有被释放”是什么意思,因为 Dispose 正在被调用(并且它不可能不被调用;using确保这一点)。

关于c# - 处置不被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4521829/

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