李毛毛 发表于 2011-3-18 16:29:30

error handler re-entered

调试出现error handler re-entered,Exiting Now 问题。有时候能通过,有时候就出现这个问题。各位有没有遇见过?怎么解决啊

李毛毛 发表于 2011-3-18 16:54:56

检测到Reentrancy

试图在不先将托管代码转换出的情况下调入它们。不要试图在底层本机扩展性点(如向量异常处理程序)内运行托管代码,因为这样会导致损坏或数据丢失。排错提示:获取有关MDA的信息。这又是什么原因什么问题啊?

雪山飞狐_lzh 发表于 2011-3-19 08:49:46

建议把代码贴上

李毛毛 发表于 2011-3-21 08:19:49

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 发表于 2011-3-21 10:57:08

调试的时候,用逐步调试看看具体哪一句有问题?

李毛毛 发表于 2011-3-21 10:58:47

回复 雪山飞狐_lzh 的帖子

郁闷的是,它有时候有问题有时候没问题。而且很多数据。。。现在就一点问题没有,

sailorcwx 发表于 2011-3-21 21:57:46

感觉你的foreach循环有问题,应该不可以在循环体内删除成员吧 dbpolys.Remove(dbpoly);

李毛毛 发表于 2011-3-22 08:37:17

回复 sailorcwx 的帖子

可以啊,我要把dbpoly剔除出去才行啊!!!现在没有出现这个问题了。。谢谢

ruirui999 发表于 2011-3-28 22:06:47

sailorcwx你的管道系统有没有新版呀?
另外能标立管名么?

cuseasky 发表于 2015-7-2 16:36:00

李毛毛 发表于 2011-3-22 08:37 static/image/common/back.gif
回复 sailorcwx 的帖子

可以啊,我要把dbpoly剔除出去才行啊!!!现在没有出现这个问题了。。谢谢

怎么解决的?分享一下
页: [1]
查看完整版本: error handler re-entered