1

TransactionCompleted 的 MSDN 条目

您可以注册此事件,而不是使用 volatile 登记来获取交易的结果信息。

警告注册此事件会对它所附加的事务的性能产生负面影响。

有没有人有一个例子,甚至是一个解释,说明如何参与一个事务以便仅仅被通知它的完成?

4

1 回答 1

0

MSDN 在这里可能有点误导。注册事件至少应该和注册一个虚拟资源管理器一样快(不是我测试过的)。

问题是,如果您登记,事务将成为分布式事务(因为现在至少涉及两个资源管理器)。这样的事务较慢(与数据库服务器或您使用的任何东西的更多 IO)。

您仍然可以尝试登记方式。只需实现IEnlistmentNotification并调用enlistment.Done()每个方法。您还需要将代码添加到Commit()方法中。

然后将对您的实现的引用传递给事务的EnlistVolatile(..)方法(选项设置为None)。

于 2010-10-09T22:54:22.100 回答