2011-11-05 40 views
0

我想使內存操作的序列成爲原子序列。我認爲沒有框架提供了這個功能,我將不得不使用memento(或其他)實現自己的回滾功能?跨內存對象的事務行爲

回答

2

如果它需要真正的原子,框架本身沒有AFAIK這樣的東西 - an interesting link discussing this issue

你問什麼叫做STM(軟件事務內存),它是Haskell的一個固有部分。

基本上任何實現都使用某種形式的拷貝機制 - 既保留舊數據直到事務被提交,或者首先創建一個拷貝,然後對拷貝進行所有「修改」,並在提交時切換引用......無論如何,記錄和/或複製的機制參與...

對於C#檢查這些鏈接了:

IF F#是一個選項,然後檢查這些鏈接了:

另一個選擇可能是使用一個 「內存,數據庫」 - 有幾個在那裏提供事務支持,從而通過DB提供原子操作......只要DB是「內存中」,它應該表現良好

+0

很好的答案,謝謝。 – Ben