Мне нужно хранить и обновлять список в MemoryCache.Каждая транзакция, попадающая на мой WEB.API, будет добавлять запись в этот список, и каждые 1 мин список будет сбрасываться в базу данных и удаляться из кэша.
Моя проблема - параллелизм и предотвращение грязного чтения / записи.Мне также нужно очень быстро написать в этот список, чтобы моя транзакция не задерживалась.
// get list in cache
List<MyObj> stat = cache.Get<List<MyObj>>(key);
if (stat == null)
stat = new List<MyObj>() { new MyObj() { SomeKey = SomeVal } };
else
stat.Add(new MyObj() { SomeKey = SomeVal });
// by this time another thread could modify the cached object, so my current object is not good anymore
cache.Set<List<MyObj>>(key, stat);