System.Runtime.Caching.MemoryCache является потокобезопасным. Несколько одновременных потоки могут читать и записывать экземпляр MemoryCache. внутренне безопасность потоков автоматически обрабатывается, чтобы обеспечить обновление кеша последовательно.
Что это может означать, так это то, что данные, хранящиеся в кеше может сама по себе не быть потокобезопасной. Например, если список помещен в кеш и два отдельных потока получают ссылку на кешированный Перечислите, что два потока будут наступать друг на друга, если они оба пытаются обновить список одновременно.
При этом методы Get и Set являются потокобезопасными, но если структура данных, которую вы можете хранить в этом кеше, не является потокобезопасной, вы можете столкнуться с проблемами. Представьте, например, что вы сохранили словарь в этом кеше. Затем в то время как thread1 использует Get для извлечения словаря и начинает его читать, thread2 использует Get для извлечения этого же словаря и пытается записать на него. Пока операция Get будет потокобезопасной, что будет дальше, может быть довольно неприятно.