brainstorm 发表于 2019-10-5 15:43:00

请教几个关于事务管理器的问题

1 打开事务管理器后,对图元进行坐标系转换,求最小包围盒结束后,如果不用tr.comit(),是否还有必要将图元转换为原来的坐标系
2 打开事务管理器后,在内存创建图元ent取得面积,如果不用tr.comit,是否用ent.dispose()直接销毁ent 即可,也等于释放内存了
刚开始学习c#,很多问题不懂,希望能得到指点

cairunbin 发表于 2019-10-6 22:54:00

1、Transaction对象,要放在Using语句里面使用,因为它自身也需要dispose。
如果不Commit,图元不用转换回去。但,不调用tr.commit,得调用Abort方法。如果这两个方法都不调用,软件运行速度会受到很大影响。
2、commit方法需要调用,ent.dispose也需要调用。commit并没有将实体加入到当前图形,或者当前数据库。调用commit没有负面影响。前面说了,你不调用commint或者abort,在你的环境里面虽然看不出什么影响,但transaction对象不是这么用的,会严重影响运行速度。

雪山飞狐_lzh 发表于 2019-10-6 23:07:00

楼上解释的很到位
只添加一点:如果只是查询信息,就不需要提交或回滚

brainstorm 发表于 2019-10-7 23:11:00

谢谢啦 我消化一下
页: [1]
查看完整版本: 请教几个关于事务管理器的问题