乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 140|回复: 7

同一个函数不能连续执行2次,第一次执行正常,第二次执行则出现致命性错误

[复制链接]

85

主题

128

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
468
发表于 2012-10-31 11:53:00 | 显示全部楼层 |阅读模式
同一个函数不能连续执行2次,第一次执行正常,第二次执行则在一个主要语句处出现致命性错误
就是连续执行下面这个函数2次:
        public void 实体改色(string 层名, Autodesk..Colors.Color 颜色)
        {
            TypedValue[] 过滤项 = new TypedValue[] { new TypedValue((int)DxfCode.LayerName, 层名) };
            SelectionFilter 过滤器 = new SelectionFilter(过滤项);
            全选择结果 = ed.SelectAll(过滤器);
            Entity ent = null;
            using (tm)
            {
                foreach (ObjectId oid in 全选择结果.Value.GetObjectIds())
                {
                    ent = tm.GetObject(oid, OpenMode.ForRead) as Entity;
                    ent.UpgradeOpen();
                    ent.Color = 颜色;
                }
                tm.Commit();
            }
            doc.Editor.Regen();
        }
连续执行2次:
        实体改色("abc", 颜色1);//执行第1次
        实体改色("tkp", 颜色2);//执行第2次
当执行第2次时,在这一句:
ent = tm.GetObject(oid, OpenMode.ForRead) as Entity;
出现致命性错误。不知为什么?
回复

使用道具 举报

29

主题

503

帖子

8

银币

中流砥柱

Rank: 25

铜币
619
发表于 2012-10-31 14:36:00 | 显示全部楼层
tm是全局变量?第一次运行后已经销毁了,所以第二次会出错。把tm改成局部变量试试
回复

使用道具 举报

85

主题

128

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
468
发表于 2012-10-31 17:21:00 | 显示全部楼层

谢谢先生指点!
tm改成局部后可以连续执行两次,但关闭autocAD窗口时出现致命性错误,这是怎么回事。
回复

使用道具 举报

85

主题

128

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
468
发表于 2012-10-31 20:36:00 | 显示全部楼层

请问先生,事物是否不可以声明为类变量而只能在函数中随时使用随时声明为局部变量。
而Document、Database 、Editor 可以声明为类变量。
回复

使用道具 举报

10

主题

45

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2012-11-1 12:43:00 | 显示全部楼层
都可以声明为类模块里面的变量。
回复

使用道具 举报

2

主题

9

帖子

1

银币

初来乍到

Rank: 1

铜币
17
发表于 2012-12-24 11:38:00 | 显示全部楼层
using中出去后tm就销毁了,定义成局部变量
回复

使用道具 举报

2

主题

8

帖子

4

银币

初来乍到

Rank: 1

铜币
16
发表于 2013-8-3 19:44:00 | 显示全部楼层
OpenMode.ForRead是否应该改成forwrite?
回复

使用道具 举报

0

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2013-8-5 09:29:00 | 显示全部楼层
怎么解决的啊
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 21:18 , Processed in 0.383848 second(s), 68 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表