首页 > 代码库 > AE 尝试读写受保护的内存

AE 尝试读写受保护的内存

 1                //获取两个点的高程 2                 pRasterSurface.PutRaster(pRasterLayer.Raster, 0); 3                 ISurface pSurface = pRasterSurface as ISurface; 4                 point.Z = pSurface.GetElevation(point); 5                 pt.Z = pSurface.GetElevation(pt); 6                 //IPolyline pPolyline = AxMapC.TrackLine() as IPolyline; 7                 IPoint pPoint = null; 8                 Boolean pBool = true; 9                 IPolyline pVPolyline = null;10                 IPolyline pInPolyline = null;11                 object pRef = 0.13;12                 pSurface.GetLineOfSight(point, pt, out pPoint, out pVPolyline, out pInPolyline, out pBool, false, false, ref pRef);13                 //如果pt在pVPolyline上,则可视;否则不可视14                 return pBool;

调试的时候因为是循环这段函数,所以执行比较长的时间后,在GetElevation这句,会报“尝试读写受保护的内存……”这样的错误。但是单步调试却没有问题。然后从网上查到了一片文章:http://hi.baidu.com/liuzumou/item/1bfca7c3328adf2fef466555,http://www.cnblogs.com/GIS_zhou/articles/1551258.html
这种问题通常出现在应用程序反复调用频率极高的情况下。但是按照文章中加了释放资源的代码还是不管用。然后就重启电脑,也不管用。最后那么多数据竟然都单步调试完了。之后,再执行就不出现这个错误了,真是奇怪~

 

AE 尝试读写受保护的内存