Je suis face à une situation où plusieurs threads accèdent à cette méthodeservice de verrouillage et délai d'attente Tissu
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();
}
filetage unique cela fonctionne bien, mais lorsque je tente d'accéder au dictionnaire ainsi à l'aide de plusieurs threads je rencontre un System.TimeOutException
.
La seule façon que j'ai pu contourner est d'utiliser LockMode.Update
sur la méthode GetAsync(...)
. Est-ce que quelqu'un ici a vécu quelque chose comme ça? Je me demande s'il y a un moyen de lire avec l'isolation de snapshots, ce qui permettrait une lecture sans verrouillage, contrairement à une lecture avec un verrou partagé sur l'enregistrement.
J'ai essayé de le faire avec une transaction partagée comme indiqué ci-dessus ainsi que des transactions individuelles pour le get et l'ensemble. Toute aide serait appréciée.