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

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

Сообщение Anonymous »

Я использую IMemoryCache (

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

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

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

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#»