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的单个事务。任何帮助,将不胜感激。