阅读:1607回复:0
SuperWorkSpace打开存放在oracle中的工作空间时引入的内存泄露问题最近使用SuperMap开发一个访问存放在Oracle中的工作空间的小例子时碰到了明显的内存泄漏问题。 程序的功能就是点击“打开”按钮时,打开工作空间,并打开该工作空间下的一个地图。 点击“关闭”按钮时,关闭地图,断开与WorkSpace的链接,并关闭工作空间。 碰到的问题就是当我循环的点击打开和关闭按钮时,通过任务管理器发现程序运行占用的内存明显的在不断增加。具体的说就是每次调用SuperWorkspace1.Open方法时内存增大,但调用.SuperWorkspace1.Close方法时,内存并不减少。由此,我推断是出现了内存泄露问题,但是我自己有找不出代码上有什么不合理的地方,所以想请大家帮我看看,看能不能找出问题的原因,谢谢大家了 代码如下: Private Sub OpenWorkSpace() Dim strPassword As String Dim strFilePath As String Dim strDSStation As String strDSStation = "station01" strPassword = "uid=" ; strDSStation ; ";pwd=" ; strDSStation strFilePath = "Provider = MSDAORA;Driver= Oracle in Orahome92 ;SERVER =gispipe;Database = " ; strDSStation ; ";Caption = " ; strDSStation bResult = Me.SuperWorkspace1.Open(strFilePath, strPassword) If Not bResult Then MsgBox "打开数据失败", vbCritical, "提示" Else Me.SuperMap1.Connect Me.SuperWorkspace1.Handle Me.SuperMap1.OpenMap "stationback" Me.SuperMap1.Action = scaPan Me.SuperMap1.Refresh End If End Sub Private Sub Command1_Click() OpenWorkSpace End Sub Private Sub Command2_Click() CloseWorkSpace End Sub Private Sub Form_Unload(Cancel As Integer) Me.SuperMap1.Close Me.SuperMap1.Disconnect Me.SuperWorkspace1.Close End Sub Private Sub CloseWorkSpace() Me.SuperMap1.Close Me.SuperMap1.Disconnect Me.SuperWorkspace1.Close Me.SuperMap1.Refresh End Sub ![]() |
|