1

我可以获得与 DB 或 File-IO 无关的示例用法吗?

我已经阅读了有关 IEnlistmentNotification 和 Transactions 的内容,并且想知道是否可以为仅在内存中的自定义类(例如我自己的资源管理器)使用事务行为?

我想知道的场景 - 假设我在内存中有一些数据结构,它有一些 5 个属性(线程安全)。我启动 5 个线程来更新每个属性(可以说它的计算密集型)。现在 4 可能会成功,而 5th 可能会失败,在这种情况下,我想将我的数据结构回滚到其原始状态。我可以为这种情况实施 DependantTransaction 吗?

PS:我知道我可以手动保存克隆副本,将其还原回 catch 块等。

4

2 回答 2

1

对于内存中的对象,已经有一些事务范围提供程序的第 3 方实现;但是,一般来说,它们有点脆弱,并不值得痛苦——尤其是因为您使用的是线程。坦率地说,我强烈建议您更多地查看常规的备忘录模式,或者不需要回滚的不可变数据结构(即您只需丢弃单独的变异副本)。

是的,它可能可以完成,但除非编写事务范围提供程序是您项目的目的,否则我建议您首先专注于交付应用程序逻辑。只是在说'

于 2012-05-31T07:34:51.330 回答
1

如果其他人有兴趣,找到这些 -

另一个问题

C#中的STM

STM.NET 库

于 2012-05-31T09:10:21.233 回答