#.net #winforms #caching
#.net #winforms #кэширование
Вопрос:
При реализации многопоточного кэша я нашел эту статью на MSDN.
http://msdn.microsoft.com/en-us/library/system.threading.readerwriterlockslim.aspx
Это для приложений Windows с использованием framework 4.0. Моя главная забота — потокобезопасность. В настоящее время я использую MemoryCache и знаю, что он не потокобезопасен. Итак, является ли предоставленная реализация лучшим способом реализации многопоточного кэширования?
Пожалуйста, дайте совет.
Комментарии:
1. Вы забыли опубликовать свой собственный код? Или вопрос относительно ReaderWriterLockSlim, который просто предоставляет средства для реализации синхронизации, которые были бы удобны для использования многопоточного кэша.
2. вам следует опубликовать здесь некоторый код, если вы ожидаете ответа
Ответ №1:
Я не совсем понимаю связь между ReaderWriterLockSlim
и кэшированием. Этот класс используется для синхронизации доступа к общему ресурсу в многопоточном приложении. Для реализации кэширования данных я бы порекомендовал вам взглянуть на System.Runtime.Пространство имен кэширования.
Комментарии:
1. Нет никакой связи, но мне просто понравилась реализация этого класса. Это выглядит очень потокобезопасно.
2. @Asdfg, как я уже говорил в своем ответе, этот класс используется для синхронизации доступа к общему ресурсу из нескольких потоков.
Ответ №2:
В настоящее время я использую MemoryCache и знаю, что он не потокобезопасен.
Кэш памяти потокобезопасен — посмотрите раздел потокобезопасности в документации MSDN.
Конечно, элементы, которые вы помещаете в MemoryCache, могут быть потокобезопасными, но это уже другая история. Во многих случаях MemoryCache используется для хранения неизменяемых элементов, которые будут потокобезопасны.