xkaeli 发表于 2015-3-18 15:09:26

求教MoveNext()的使用方法

本帖最后由 xkaeli 于 2015-3-18 15:20 编辑

求教我使用DbDictionaryEnumerator.MoveNext()函数时老是在随机位置意外崩溃,有时刚处理两张图就崩溃了,有时处理几十张图也不会出事。但是当运行完这些代码以后无论发生哪种情况,在关闭CAD程序时CAD都会崩溃。
以下代码:ObjectId layid = db.LayoutDictionaryId;
                  DBDictionary dbd = tran.GetObject(layid, OpenMode.ForRead) as DBDictionary;
                  DbDictionaryEnumerator dbde =dbd.GetEnumerator();
                  Layout lay;
                  while (dbde.MoveNext())
                  {
                        layid = dbde.Value;
                        lay = tran.GetObject(layid, OpenMode.ForRead) as Layout;
                        filList = new TypedValue((int)DxfCode.LayoutName, lay.LayoutName);
                        prompsel = ed.SelectAll(selfilter);
                        if (prompsel.Status != PromptStatus.Error)
                        {
                            spage = prompsel.Value.Count;
                            for (int i = 0; i < spage; i++)
                            {
                              blrf = tran.GetObject(prompsel.Value.ObjectId, OpenMode.ForRead) as BlockReference;
                              Mid_CAD_entity.Add(blrf);
                              Mid_Space.Add(lay.LayoutName);
                            }
                            var varpt = from pt in Mid_CAD_entity orderby -pt.Position.Y, pt.Position.X select pt;
                            CAD_entity = varpt.ToList<BlockReference>();
                        }
                  }

雪山飞狐_lzh 发表于 2015-3-18 17:52:29

最后崩溃可能是文档锁的原因?
立刻崩溃应该是空值的引用

xkaeli 发表于 2015-3-20 16:25:51

雪山飞狐_lzh 发表于 2015-3-18 17:52 static/image/common/back.gif
最后崩溃可能是文档锁的原因?
立刻崩溃应该是空值的引用

按道理来讲,如果到达某一文档崩溃的话,下次到达该文档依然会崩溃。可我这个程序竟然是随机的。并且不对崩溃界面响应的话程序还能正常处理。完全被搞蒙了
页: [1]
查看完整版本: 求教MoveNext()的使用方法