C# IMemoryCache: добавить в список за одну операцию?C#

Место общения программистов C#
Ответить
Anonymous
 C# IMemoryCache: добавить в список за одну операцию?

Сообщение Anonymous »

Я использую IMemoryCache (Microsoft.Extensions.Caching.Memory) в проекте .NET 9 ASP.NET Core. Я храню список в этом кеше и хотел бы добавить значение в этот список. Кажется, для этого мне нужно:
  • Вытащить список из кеша
  • Скопировать его в новый список
  • Скопировать его в новый список
  • li>
    Добавьте значение.
  • Установите обновленный список обратно в кэш.

Код: Выделить всё

var cacheKey = CacheKey(document.Resource.PartitionKey());
var idsList = _memoryCache.Get(cacheKey) as List;
if (idsList != null)
{
var listCopy = new List(idsList);
idsList.Add(document.Resource.Id);
_memoryCache.Set(cacheKey, listCopy);
}
Похоже, это создает возможность возникновения состояния гонки. Является ли лучший путь реализации моей собственной блокировки потока вокруг этих операций? Или есть более простой подход?
Спасибо за любые предложения.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -operation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»