gpt4 book ai didi

c# - 一个如此简单的 Winform 程序——但我可以恢复内存吗?

转载 作者:行者123 更新时间:2023-11-30 14:59:41 25 4
gpt4 key购买 nike

我决定在 C# 中使用 .NET 2.0 做一个简单的 Windows Form 项目来测试并查看到底是什么导致了我的其他主要 UI 应用程序中似乎“不断增长的内存泄漏”。

我在这个简单的项目中所做的是创建两个表单:Form1 和 Form2

Form1 有一个大按钮,可以弹出 Form2 的一个新实例。

private void button1_Click(object sender, EventArgs e)
{
Form2 fm2 = new Form2();
fm2.ShowDialog();
fm2.Dispose();
}

在用户决定关闭窗口之前,Form2 除了显示自己之外什么都不做。

现在,当我启动应用程序并按下 Form1 上的按钮时,内存使用量猛增了大约 100~kb。我会关闭弹出窗口,再次按下按钮,然后看到另一个 100~kb 的增量。我会做大约 10-20 次迭代。最后,我会在任务管理器中看到从 6,880 KB -> 8,684 KB 的跳跃。现在,它最终会停在某个数字(在本例中为 8684 KB)。达到这个之后就不再增加了。

这是我的问题:

我的主要 UI 应用程序显然比这复杂得多,如果有的话,这种类型的内存增加很可能只占我所看到的整体内存增加的一部分。尽管如此,它仍然很明显,并且在具有多种形式的项目中,这在任务管理器中看起来非常糟糕,因为它看起来像内存泄漏。

那么首先,这是内存泄漏吗?

其次,即使不是,有什么办法可以避免吗?

最佳答案

不要太在意事物“看起来像”什么。 .NET 很好地管理内存,如果它不收集内存,就意味着您有足够的空闲内存可用,那么它为什么要费心呢?内存是用来使用的,而不是囤积和保持免费。

这不是问题,它会在需要时自行处理。

关于c# - 一个如此简单的 Winform 程序——但我可以恢复内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16430832/

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