清除和释放记忆

时间:2012-08-20 01:59:02

标签: memory-management memory-leaks c#-2.0

我正在使用C#.Net开发一个Windows应用程序。这实际上是一个安装在DBMS中的插件。此插件的目的是读取DBMS中的所有记录(记录是对象),匹配提供的条件并将它们作为XML文件传输到我的本地文件系统。我的问题与内存的使用有关。一切都很好。但是,每次我读取一条记录时,它都会占用内存,并且在一定限制之后,由于内存不足,插件会停止工作。

我正在处理大约10k-20k的记录(对象)。 C#中是否存在任何与内存相关的方法,以便在将每个记录写入XML文件后立即清除它们的内存。我尝试了所有基本的内存处理方法,如clear(),flush(),gc()和& finalize()/但没用。

请考虑他跟随:

  • 记录是一个对象,我无法改变这个&使用其他有效数据 结构。
  • 每次我读取记录时,我都会将它们写入XML。并重复这一点 再次&试。

1 个答案:

答案 0 :(得分:0)

C#是一种垃圾收集语言。因此,要回收对象使用的内存,您需要确保删除对该对象的所有引用,以使其符合收集条件。具体来说,这意味着您应该在完成对它们执行任何操作后,从任何持有对它们的引用的数据结构中删除对象。

如果您对您正在使用的数据结构类型有更具体的了解,我们可以提供更具体的答案。