MemoryCache
is indeed thread safe, which is suitable for your needs, but one thing to consider is that if you intend to create multiple instances of it, it might not be the best choice, as MSDN mentions:
MemoryCache is not a singleton, but you should create only a few or potentially only one MemoryCache instance and code that caches items should use those instances.
For more details, you can see my question here: Using multiple instances of MemoryCache