我写的一个几百k的程序,由于背景用了图片。当窗体加载是,一下子内存就用了50多M。当我不使用那个程序大概过了30多分钟,使用内存就降到5M左右。我观察了一些软件都是用20M左右。连暴风影音都是用20来M,而且保持使用内存稳定。
想请问一下,怎样才可以即时释放内存。
我写的一个几百k的程序,由于背景用了图片。当窗体加载是,一下子内存就用了50多M。当我不使用那个程序大概过了30多分钟,使用内存就降到5M左右。我观察了一些软件都是用20M左右。连暴风影音都是用20来M,而且保持使用内存稳定。
想请问一下,怎样才可以即时释放内存。
很简单的来说,当你一个按钮事件(处理数据比较多的话)处理完毕后,就要释放内存。具体的要看实例。
像下面的都属于释放资源
1、using (SqlDataReader dr = helper.ExcuteSqlReturnReader(sql))
2、if (cmd != null)
{
SqlConnection conn = cmd.Connection;
Debug.Assert(conn != null);
cmd.Dispose();
cmd = null;
conn.Dispose();
}
你说的不是释放内存问题,C#应用程序确实占用内存很大,因为是NET,有个中间调用过程。
当我不使用那个程序大概过了30多分钟,使用内存就降到5M左右,是因为windows系统缓存的自动管理,把不常用的DLL会移出内存,不是由你来操作的
对象名. .Dispose(); 方法