CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

事务管理概述

2022-12-31 18:53| 发布者: admin| 查看: 299| 评论: 0|来自: AutoCAD

事务模型将多个客户端对多个对象的多个操作封装为一个称为事务的原子操作。在事务边界内,客户端可以从对象 ID 获取对象指针。这样获得的对象指针在客户端结束事务或中止事务之前有效。如果事务成功结束,则提交对对象的操作。如果事务中止,则会取消对对象的操作。

与数据库对象中所述的常规打开和关闭机制相比,使用此范例对对象进行操作具有几个优点。打开和关闭机制适用于对单个对象或一小组对象的简单操作。但是,以这种方式打开对象存在某些限制。例如,如果某个对象已打开以供读取,则不能同时打开该对象进行写入。如果对象已打开进行写入,则无法再次打开该对象进行写入。有关与打开和关闭机制关联的冲突错误的列表,请参阅数据库对象。事务模型更为宽松,如果对象与事务关联,则从特定模式的对象 ID 获取对象指针通常会成功。

根据您的应用程序,使用打开和关闭机制可能还有其他缺点。如果应用程序在一个操作(例如命令)过程中多次打开和关闭同一对象,则由于多次打开和关闭,将导致效率严重低下。许多耗时的操作与关闭对象相关联。如果打开要写入的对象,对其进行修改,然后关闭它,则修改的撤消记录将提交到撤消文件,生成对象的图形,并触发通知。每次关闭对象时都会执行所有这些操作。如果您使用事务处理操作并获取指向对象的指针,则上述所有活动仅在事务结束时发生一次。结果是提高了效率并减少了撤消文件,因为减少了进入撤消文件的记录数。

此外,如果您有一个复杂的网络,其中对象通过对象 ID 相互引用,您希望能够获取指向程序任何模块中的对象的指针,而不必担心另一个模块或其他应用程序是否打开了该对象。这些活动只能使用事务模型,因为事务对操作进行分组,并允许跨模块边界从对象 ID 获取指针。


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 13:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部