我了解使用 Dispose/Finalize 模式的基础知识,并且尽我所能使用它,但我似乎对这种情况有疑问。
我有一个非常小的对象:
// Small Object
public class Class1
{
public int SampleId { get; set; }
}
// Form Level Object
public IList<Class1> MyClasses { get; set; }
MyClasses 是通过从数据库加载多达几千个 Class1 对象来填充的。该过程正常工作。
因为 List<> 对象上没有 Dispose 方法,并且它使用了大量内存,所以我不确定如何处理它。当用户关闭表单时,我是否允许默认的 Close() 方法清理 MyClasses,我是否应该使用 MyClasses.Clear() 来减小 Dispose 方法中列表的大小,将 MyClasses 设置为 null,或者可能是其他什么?
一旦用户关闭此表单,他们可能会打开表单备份并加载另一组数据以使用可能有几千大小的数据。几分钟后,它们可能会消耗大量内存。
我想很快回收 MyClasses 正在使用的内存,以便下次用户打开表单时可以重用它。
如果 Class1 中有许多字段使每条记录变得相当大,那我应该使用什么方法来清理 MyClasses 会有所不同吗?