我有一个使用SQL连接和SQL对象(如数据表和命令)的vb.net应用程序。现在我计划测试内存问题,看看内存是否有问题......
我已插入计时器并使其在我的应用程序中每1秒显示一次特定表格并将其关闭..
此表单包含非常简单的表单加载代码,只是填充SQL Server中的组合框(独立组合框和数据网格)。
现在,在内存选项卡中的资源监视器中,特别是在私有KB字段中,内存正在成长并且从未发布,它已达到1 GB甚至更多!
为什么经常这样?
注意:
Dispose()
。我观看了GDI对象的内存,它会释放每个表单,所以我认为这不是GDI内存问题。
计时器工作时间小于5分钟。
任何想法?
答案 0 :(得分:0)
我建议,为安全起见,请考虑使用“使用”关键字。这将确保一旦您的连接超出范围,它们就会被处理掉。任何实现IDisposable的对象都可以与Using Statement一起使用。
Using conn as new SQLConnection(connString)
'Do some stuff with your SQL connection
End Using
这只是一个很好的做法,意味着您不必使用Try ...最后确保关闭连接。
您还需要查看内存泄漏的其他可能原因。也可能需要考虑如何显示表单的范围。尝试制作打开表单的代码也可以处理表单;
Using frmFoo as new frmMain
frmFoo.Show()
End Using