0
私は複数のスレッドがこのメソッドにアクセスしている状況を扱っていますサービスファブリックのロックとタイムアウト
using (var tx = StateManager.CreateTransaction())
{
var item = await reliableDictioanary.GetAsync(tx, key);
... // Do work on a copy of item
await reliableDictioanary.SetAsync(tx, key, item);
await tx.CommitAsync();
}
これはうまく動作しますが、私は複数のスレッドを使用して、このように辞書にアクセスしようとすると、私が遭遇
シングルスレッドSystem.TimeOutException
。
GetAsync(...)
メソッドでLockMode.Update
を使用することができました。ここの誰かがこのような経験をしていますか?
スナップショットアイソレーションを使用して読み取る方法があると、レコードの共有ロックを使用した読み取りとは対照的に、読み取りがロックされていないことが考えられます。
私は、上記のような共有トランザクションとgetとsetの個別トランザクションの両方でこれを実行しようとしました。どんな助けもありがとう。