阅读:2889回复:5
请教vb supermap高手关于内存泄漏问题 在线等待
<P>我用vb和supermap写的代码如下:
SuperMap1.Layers.RemoveAll SuperMap1.disconnect SuperMap1.Close</P> <P> SuperMap1.Connect SuperWorkspace1.Handle SuperMap1.FilterText = True SuperMap1.openmap "gdmap" SuperMap1.Refresh</P> <P>或用 Dim objLayers As soLayers Set objLayers = SuperMap1.Layers SuperMap1.Layers.RemoveAll Set objLayers = Nothing Set frmgps = Nothing SuperMap1.disconnect SuperMap1.Close</P> <P> SuperMap1.Connect SuperWorkspace1.Handle SuperMap1.FilterText = True SuperMap1.openmap "gdmap" SuperMap1.Refresh</P> <P>我是多个数据源放在同一个工作空间里,地图是放在子窗体,在子窗体中我先关闭地图,然后再打开另外一个地图,我只做这个操作的情况下,在任务管理器里发现程序内存没有释放,地图切换的越多次,内存泄露的越多,最多时泄露有260多M,请教高手是什么原因?</P> <P>在线等待,谢谢! </P> |
|
1楼#
发布于:2005-04-26 15:19
<P> 先Close,再Disconnect,试试看</P><P> SuperMap1.Layers.RemoveAll
SuperMap1.Close</P><P> SuperMap1.disconnect </P><P> SuperMap1.Connect SuperWorkspace1.Handle SuperMap1.FilterText = True SuperMap1.openmap "gzmap" SuperMap1.Refresh</P> |
|
2楼#
发布于:2005-04-26 09:44
<P>我在顶楼已说明</P>
<P>或用 Dim objLayers As soLayers Set objLayers = SuperMap1.Layers SuperMap1.Layers.RemoveAll Set objLayers = Nothing SuperMap1.disconnect SuperMap1.Close</P> <P> SuperMap1.Connect SuperWorkspace1.Handle SuperMap1.FilterText = True SuperMap1.openmap "gzmap" SuperMap1.Refresh</P> <P>还是不行啊</P> [此贴子已经被作者于2005-4-26 9:55:42编辑过]
|
|
3楼#
发布于:2005-04-25 19:26
<P>SuperMap中定义的对象,自己不会释放内存,必需手工去做。</P><P>如Set objLayers = SuperMap1.Layers</P><P>最后一定要 set objLayers = nothing</P>
|
|
4楼#
发布于:2005-04-25 17:05
<P>我用vb和supermap写,放在菜单里</P><P>如:</P><P>地图(主菜单)</P><P>广州(子菜单)</P><P>深圳(子菜单) </P><P>我在“广州”菜单CLICK事件中输入以下代码:</P><P> SuperMap1.Layers.RemoveAll
SuperMap1.disconnect SuperMap1.Close</P><P> SuperMap1.Connect SuperWorkspace1.Handle SuperMap1.FilterText = True SuperMap1.openmap "gzmap" SuperMap1.Refresh</P><P>在“深圳”菜单CLICK事件中输入以下代码:</P><P> SuperMap1.Layers.RemoveAll SuperMap1.disconnect SuperMap1.Close</P><P> SuperMap1.Connect SuperWorkspace1.Handle SuperMap1.FilterText = True SuperMap1.openmap "szmap" SuperMap1.Refresh</P><P>我是多个数据源放在同一个工作空间里,如广州地图(gzmap)对应的是广州数据源,深圳地图(szmap)对应的是深圳数据源,地图是放在子窗体,在菜单中我点击“广州”,等地图打开后再点击“深圳”,这样反复操作,我只做这种操作的情况下,在任务管理器里发现程序内存没有释放,地图切换的越多次,内存泄露的越多,最多时泄露有260多M,请教高手是什么原因?</P> |
|
5楼#
发布于:2005-04-25 15:26
<P>怎样切换地图的?</P><P>贴代码时,请详细说明这些代码写在什么样的事件中等信息,便于给您检查原因。</P>
|
|