开发了一个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的样子,这样一直打开的话就越来越大了,所以想问一下在关闭的时候应该如何释放占用的内存,至少上升的不要那么明显

解决方案 »

  1.   

    DIALOG 显示地图,但是我现在测试的其他操作都没有做,就执行了FROM_LOAD后然后就关闭
            private int m_MapAction;                    //表示现在的鼠标状态
            private CEDatabase m_Database;              //数据库连接对象
            private FeatureLayer m_QueryFeatureLayer;   //查询的图层对象
            private string m_QueryField;                //查询的字段
    窗体变量就这几个,不过控件有点多,控件的生成后的释放系统会自己做的吧,我不是很了解