明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8376|回复: 9

error handler re-entered

[复制链接]
发表于 2011-3-18 16:29:30 | 显示全部楼层 |阅读模式
调试出现error handler re-entered,Exiting Now 问题。有时候能通过,有时候就出现这个问题。各位有没有遇见过?怎么解决啊
 楼主| 发表于 2011-3-18 16:54:56 | 显示全部楼层

检测到Reentrancy

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

发表于 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[0] 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;
        }
具体不知道哪里错的????
发表于 2011-3-21 10:57:08 | 显示全部楼层
调试的时候,用逐步调试看看具体哪一句有问题?
 楼主| 发表于 2011-3-21 10:58:47 | 显示全部楼层
回复 雪山飞狐_lzh 的帖子

郁闷的是,它有时候有问题有时候没问题。而且很多数据。。。现在就一点问题没有,
发表于 2011-3-21 21:57:46 | 显示全部楼层
感觉你的foreach循环有问题,应该不可以在循环体内删除成员吧 dbpolys.Remove(dbpoly);
 楼主| 发表于 2011-3-22 08:37:17 | 显示全部楼层
回复 sailorcwx 的帖子

可以啊,我要把dbpoly剔除出去才行啊!!!现在没有出现这个问题了。。谢谢
发表于 2011-3-28 22:06:47 | 显示全部楼层
sailorcwx  你的管道系统有没有新版呀?
另外能标立管名么?
发表于 2015-7-2 16:36:00 | 显示全部楼层
李毛毛 发表于 2011-3-22 08:37
回复 sailorcwx 的帖子

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

怎么解决的?分享一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 10:33 , Processed in 0.176660 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表