You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft.Extensions.Caching.Memory是否具备线程安全性?

关于Microsoft.Extensions.Caching.Memory的线程安全性问题
  • 官方文档推荐使用Microsoft.Extensions.Caching.Memory替代System.Runtime.Caching/MemoryCache,后者的线程安全性有明确文档说明,但前者未在文档中直接提及。
  • 查看Microsoft.Extensions.Caching.Memory的源码后,发现它是基于ConcurrentDictionary的包装类,能否据此认为它具备线程安全性?

回答

Microsoft.Extensions.Caching.Memory是线程安全的,理由如下:

  1. 它内部依赖ConcurrentDictionary存储缓存项,而ConcurrentDictionary本身就是为多线程场景设计的线程安全集合,能保证基础增删改查操作的线程安全。
  2. 缓存的核心操作(如Get、Set、Remove以及带过期策略的缓存项管理)都在ConcurrentDictionary的基础上做了额外线程安全处理,确保并发场景下缓存状态的一致性。
  3. 在ASP.NET Core的官方实践中,该缓存组件默认用于Web应用的并发请求环境——Web应用天然是多线程场景,若组件不具备线程安全性,官方不会将其作为推荐方案。

所以即使文档未直接标注,也可以放心在多线程场景下使用Microsoft.Extensions.Caching.Memory。

内容的提问来源于stack exchange,提问作者Wuloo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 13:45:43