我听说 C# 不会立即释放内存,即使您已经使用完它。我可以强制 C# 释放内存吗?
我正在使用 Visual Studio 2008 Express。这有关系吗?
附:我对 C# 及其管理内存的方式没有任何问题。我只是好奇。
Jim,
你没听错。它通过称为垃圾收集器的机制定期清理内存。您可以通过如下调用“强制”垃圾收集。
GC.Collect();
我强烈推荐你阅读这篇关于垃圾收集的 MSDN 文章.
编辑1:“力”用引号引起来。更清楚地说,就像另一张海报一样,这实际上只是表明了这一点。你不可能真正让它在特定的时间点发生。因此,链接到有关 .Net 中的垃圾收集的文章
编辑2:我意识到这里的每个人都只提供了对你的主要问题的直接答案。至于你的第二个问题。使用 Visual Studio 2008 Express 仍将使用 .net 框架,该框架执行垃圾收集。因此,如果您升级到专业版,您仍然会遇到相同的内存管理功能/限制。
Edit 3: 这篇维基百科关于终结器的文章给出了一些关于在终结器中适合做什么的很好的指示。基本上,如果您正在创建一个可以访问关键资源的对象,或者您正在使用这样的对象,请实现 IDispose 和/或利用using陈述。即使抛出异常,使用也会自动调用 Dispose 方法。这并不意味着您不需要给出运行终结器提示......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)