问题描述
最近开发一个小程序,碰到一个莫名其妙的程序停止运行问题,好像休眠了一样,找了半天找不到问题,实在没辙了,所以请大家帮忙看看。我给大家描述一下程序的逻辑,大家有时间的话帮我分析一下出错的原因吧,谢谢了:)程序涉及GIS的一些东西,但这好像不影响对整个程序的理解。错误的现象:程序正常执行的时候占非常多的CPU时间(50%以上),但执行了一段时间后程序没有了响应,CPU占用减到0,内存占用也降了下来。这个时间不固定;出错时程序状态(变量、对象什么的)也不一样。程序的主要部分是循环执行下面的一段函数,这个函数是在独立于界面的一个线程里执行,功能就是用参数传进来一个表示一块地理区域的矩形范围,由一个具有地图展示功能的控件使用这个矩形范围输出一张256*256的图片,下面请看程序的主要部分(砍掉了一些无关细节)://formCutRMPStat是在主线程中创建的一个窗体,用来反馈进度信息,委托updateFormCutStatus用来更新反馈信息this.formCutRMPStatus.Invoke(updateFormCutStatus);//pExport是一个GIS开发组件专用的一个帮助输出用的接口inthDC=pExport.StartExporting();//在内存中开辟一块位图内存,返回其DC句柄//pActiveView是地图展示控件显示控制的接口,可以通过它来访问地图控件展示的地图的信息pActiveView.Output(hDC,(int)resolution,refpixBounds,extend,null);//将图像从地图展示控件复制到上面的位图内存pExport.FinishExporting(fileName);//将位图内存输出到一个Jpg图片文件pExport.Cleanup();//释放上面分配的位图内存上面就是程序的关键部分程序的主要部分就是不停的循环执行上面的这段函数,执行2到3万次后就开始不稳定,会在一个不确定的时候出现上面的情况,程序好像睡着了一样,没有反映了,请大家帮忙分析下,谢谢了
解决方案
解决方案二:
不懂,帮顶.