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的單個事務。任何幫助,將不勝感激。