我对我们系统的内存管理有疑问。
基本上这是我的设计:
加载记录列表。frmBrowse 使用的内存 90MB
点击记录后,会弹出另一个表格,即所选记录的详细表格 frmAP Memory used 110MB
private void ViewRecord() { try { if(oAP!=null) oAP = new frmAP(); oAP.LoadRecordDetails(); oAP.Show(); } catch (Exception ex) { clsClass.oGenMethods.ErrorMessage(ex.Message, "frmBrowse", "EditSearchFields"); } }
- 当用户关闭时,我实际上隐藏它(frmAP)以防止重新查询数据,例如查找表和其他 - frmAP - 使用的内存 110MB
在 frmAP_Close()
this.Hide();
- 内存为 110MB
- 隐藏表单(frmSomeForm)后,内存保持在 110MB
当用户关闭调用/实例化“frmAP”的表单(frmBrowse)时
公共无效 tsClose_Click(对象发送者,EventArgs e){
if (oAP != null) { oAP .Dispose(); oAP .Close(); GC.Collect(); }
}
问题是内存仍然在 ~110MB 列表(frmBrowse)表单和记录表单(frmAp)是否已关闭。
请指教
提前致谢
更新:
我试图删除 .Hide() 以隔离问题,但内存仍在不断增长