error handler re-entered
调试出现error handler re-entered,Exiting Now 问题。有时候能通过,有时候就出现这个问题。各位有没有遇见过?怎么解决啊检测到Reentrancy
试图在不先将托管代码转换出的情况下调入它们。不要试图在底层本机扩展性点(如向量异常处理程序)内运行托管代码,因为这样会导致损坏或数据丢失。排错提示:获取有关MDA的信息。这又是什么原因什么问题啊?建议把代码贴上 pt = new Point3d(0, 0, ptz);
plan = new Plane(pt, Vector3d.ZAxis);//画一个高程为ptz的面
pl = firstRgn(plan);//面转为多段线
public Polyline firstRgn(Plane plan)
{
Polyline poly = new Polyline();
Region reg = sd.GetSection(plan);//sd三维实体。用面plan切sd
DBObjectCollection dbpolys = PolylineFromRegion(reg);
Polyline littlePoly = dbpolys as Polyline;//小短线
Point2d sp = new Point2d(littlePoly.StartPoint.X, littlePoly.StartPoint.Y);
Point2d ep = new Point2d(littlePoly.EndPoint.X, littlePoly.EndPoint.Y);
poly.AddVertexAt(poly.NumberOfVertices, sp, 0, 0, 0);
poly.AddVertexAt(poly.NumberOfVertices, ep, 0, 0, 0);
dbpolys.Remove(littlePoly);
int polyCount = dbpolys.Count;
Point2d nextPt = new Point2d();
for (int pi = 0; pi < polyCount; pi++)
{
foreach (Polyline dbpoly in dbpolys)
{
if (PointDistance(poly.EndPoint, dbpoly.StartPoint) < 0.1)
{
nextPt = new Point2d(dbpoly.EndPoint.X, dbpoly.EndPoint.Y);
dbpolys.Remove(dbpoly);
poly.AddVertexAt(poly.NumberOfVertices, nextPt, 0, 0, 0);
break;
}
if (PointDistance(poly.EndPoint, dbpoly.EndPoint) < 0.1)
{
nextPt = new Point2d(dbpoly.StartPoint.X, dbpoly.StartPoint.Y);
dbpolys.Remove(dbpoly);
poly.AddVertexAt(poly.NumberOfVertices, nextPt, 0, 0, 0);
break;
}
}
}
poly.Closed = true;
//jinhe.ObjectARX.Tools.AddEntity(poly);
return poly;
}
具体不知道哪里错的???? 调试的时候,用逐步调试看看具体哪一句有问题? 回复 雪山飞狐_lzh 的帖子
郁闷的是,它有时候有问题有时候没问题。而且很多数据。。。现在就一点问题没有, 感觉你的foreach循环有问题,应该不可以在循环体内删除成员吧 dbpolys.Remove(dbpoly);
回复 sailorcwx 的帖子
可以啊,我要把dbpoly剔除出去才行啊!!!现在没有出现这个问题了。。谢谢 sailorcwx你的管道系统有没有新版呀?
另外能标立管名么? 李毛毛 发表于 2011-3-22 08:37 static/image/common/back.gif
回复 sailorcwx 的帖子
可以啊,我要把dbpoly剔除出去才行啊!!!现在没有出现这个问题了。。谢谢
怎么解决的?分享一下
页:
[1]