1

DB にも File-IO にも関係のない使用例を入手できますか?

IEnlistmentNotification と Transactions について読んだことがありますが、メモリ内のみにあるカスタム クラス (自分のリソース マネージャーなど) に Transactional 動作を使用できるかどうか疑問に思っていました。

私が疑問に思っていたシナリオ - メモリ内に 5 つのプロパティ (スレッドセーフ) を持つデータ構造があるとしましょう。5 つのスレッドを起動して、それぞれ 1 つのプロパティを更新します (計算量が多いとしましょう)。4 番目は成功し、5 番目は失敗する可能性があります。この場合、データ構造を元の状態にロールバックします。この場合、DependantTransaction を実装できますか?

PS: 複製したコピーを手動で保存したり、catch ブロックで元に戻したりできることはわかっています。

4

2 に答える 2

1

インメモリ オブジェクトのトランザクション スコープ プロバイダーのサードパーティ実装がいくつかあります。ただし、一般的に言えば、それらは少し不安定であり、特にスレッドを使用しているため、苦労する価値はありません。率直に言って、通常の memento パターン、またはロールバックを必要としない不変のデータ構造(つまり、別個の変更されたコピーを破棄するだけ)を検討することを強くお勧めします。

はい、おそらく可能ですが、トランザクション スコープのプロバイダーを作成することがプロジェクトの目的でない限り、最初にアプリケーション ロジックの提供に集中することをお勧めします。言ってるだけ'

于 2012-05-31T07:34:51.330 に答える
1

他の誰かが興味を持っている場合、これらを見つけました-

別のSOの質問

C# の STM

STM.NET ライブラリ

于 2012-05-31T09:10:21.233 に答える