在.NET中释放内存 - 列表

时间:2013-12-08 13:55:47

标签: vb.net

我之前在网上阅读过一篇文章(不是在StackOverflow上),它说明你应该在完成后将列表(http://msdn.microsoft.com/en-us/library/6sh2ey19%28v=vs.110%29.aspx)设置为空。我无法看到这样做的任何好处。

如果列表实现了IDisposable,那么我会将它们包装在Using语句中,但它们不是这样我不会。

这让我有点困惑。一旦我完成了变量,我就会将变量设置为空,因为我会误以为这会鼓励垃圾收集器更快地释放资源。有没有一种情况你应该将变量设置为空?更具体地说,这适用于列表吗?

1 个答案:

答案 0 :(得分:1)

据我所知,将变量设置为Nothing永远不会有帮助even with COM objects,您需要执行Marshal.ReleaseComObject。列表是.NET对象,因此它们不需要任何内存管理。除非您遇到内存问题。然后你可能需要更快/更频繁地强制垃圾收集等。但是在实践中从未有过这样的机会。

你可以做的好事总是保持变量的范围。如果您不需要它们在应用程序的整个生命周期中存在,请将它们声明在subs和使用的函数中。