版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013084746/article/details/78777670
关于ArcEngine“不能再打开其他表了”的错误
1.从前遇到的这种问题,一般是在pFeatureCursor = pFeatureClass.Search(pSpatialfilter, False)这种语句上,只要把光标释放ESRI.ArcGIS.ADF.ComReleaser.ReleaseCOMObject(pFeatureCursor) 或者System.Runtime.InteropServices.Marshal.ReleaseComObject(featureclass); 就ok了。
今天特别奇怪,在pFeatureClass.GetFeature(pID)这里出现问题,也没有光标啊,于是我把注意力又重新转移回“不能再打开其他表了”的原始提示上分析,问题就是要素类的表被打开太多次了,最终的解决方案,强制一次垃圾回收。
System.GC.Collect() '强制对所有代进行垃圾回收。
System.GC.WaitForPendingFinalizers() '挂起当前线程,直到处理终结器队列的线程清空该队列为止。原来系统里有这些代码的,只是以前没有出现错误就把他们伟大的作用忽略了。
今天特别奇怪,在pFeatureClass.GetFeature(pID)这里出现问题,也没有光标啊,于是我把注意力又重新转移回“不能再打开其他表了”的原始提示上分析,问题就是要素类的表被打开太多次了,最终的解决方案,强制一次垃圾回收。
System.GC.Collect() '强制对所有代进行垃圾回收。
System.GC.WaitForPendingFinalizers() '挂起当前线程,直到处理终结器队列的线程清空该队列为止。原来系统里有这些代码的,只是以前没有出现错误就把他们伟大的作用忽略了。