来自用于TransactionCompleted的MSDN条目
您可以注册此事件,而不是使用易失性登记来获取事务的结果信息。 警告注册此事件会对其附加的事务的性能产生负面影响。
是否有人有一个例子,甚至一个解释,如何在一个事务中登记,以便仅仅得到它的完成通知?
发布于 2010-10-09 22:54:22
MSDN在这里可能有点误导。注册事件至少应该和注册虚拟资源管理器一样快(而不是我已经测试过它)。
问题是,如果您登记,事务将变成分布式事务(因为现在至少涉及两个资源管理器)。这样的事务要慢一些(数据库服务器的IO更多,或者您曾经使用过的任何东西)。
你还是可以试试入伍的方式。只需在每个方法中实现IEnlistmentNotification并调用enlistment.Done()。您还需要将代码添加到Commit()方法中。
然后将对实现的引用传递给事务的EnlistVolatile(..)方法(选项设置为None)。
https://stackoverflow.com/questions/3728413
复制相似问题