- 积分
- 781
- 明经币
- 个
- 注册时间
- 2011-5-24
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 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[2] = 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[i].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>();
- }
- }
复制代码 |
|