开发了一个MOBILE6.0上面的系统,现在发现一个比较严重的问题,就是占用的内存越来越大,我是从一个窗体打开另外一个窗体,代码如下: private void picMapView_Click(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
frmMap frmMaipShow = new frmMap(m_DataBase);
Cursor.Current = Cursors.Default;
frmMaipShow.ShowDialog();//显示新的窗体
frmMaipShow.Dispose();
GC.Collect();//这个加不加感觉是一样的
}
然后在打开的窗体上可以完成一些操作,关闭的时候是这样写的 private void frmMap_Closed(object sender, EventArgs e)
{
mService.Close();
mService.Dispose();
MainMap.Dispose();
this.Close();
}
比如我刚刚开始打开的是时候是2.8M左右,第一次打开之后变成了7M的样子,关闭之后变成5M多,再打开就有8M多了,关闭之后大概有7M的样子,这样一直打开的话就越来越大了,所以想问一下在关闭的时候应该如何释放占用的内存,至少上升的不要那么明显
{
Cursor.Current = Cursors.WaitCursor;
frmMap frmMaipShow = new frmMap(m_DataBase);
Cursor.Current = Cursors.Default;
frmMaipShow.ShowDialog();//显示新的窗体
frmMaipShow.Dispose();
GC.Collect();//这个加不加感觉是一样的
}
然后在打开的窗体上可以完成一些操作,关闭的时候是这样写的 private void frmMap_Closed(object sender, EventArgs e)
{
mService.Close();
mService.Dispose();
MainMap.Dispose();
this.Close();
}
比如我刚刚开始打开的是时候是2.8M左右,第一次打开之后变成了7M的样子,关闭之后变成5M多,再打开就有8M多了,关闭之后大概有7M的样子,这样一直打开的话就越来越大了,所以想问一下在关闭的时候应该如何释放占用的内存,至少上升的不要那么明显
private int m_MapAction; //表示现在的鼠标状态
private CEDatabase m_Database; //数据库连接对象
private FeatureLayer m_QueryFeatureLayer; //查询的图层对象
private string m_QueryField; //查询的字段
窗体变量就这几个,不过控件有点多,控件的生成后的释放系统会自己做的吧,我不是很了解