【发布时间】:2011-04-21 20:43:51
【问题描述】:
将对象在内存中保存一段有限的时间然后释放它的最佳方法是什么?
例如,我有一个Dictionary<int, string>,我只想保留 10 分钟,然后再将其丢弃。
怎么做?
谢谢。
【问题讨论】:
将对象在内存中保存一段有限的时间然后释放它的最佳方法是什么?
例如,我有一个Dictionary<int, string>,我只想保留 10 分钟,然后再将其丢弃。
怎么做?
谢谢。
【问题讨论】:
你不能处理字典,只有垃圾收集器才能处理掉它们。在计时器的 Tick 事件中将字典引用设置为 null 最终将完成工作。查看 WeakReference 类。
【讨论】:
您可以使用对象缓存类(框架 4),根据 ms 文档是这样定义的: 公共抽象类 ObjectCache : IEnumerable>, IEnumerable
该类属于 System.Runtime.Caching。为了使用它,您已经将它继承到一个具体的实现中。
此对象的工作方式与 httpcache 应用程序的工作方式相同,因此您可以定义滑动过期时间和/也可以定义绝对过期时间
【讨论】:
从 .NET framework 4.0 及更高版本开始,您可以使用 MemoryCache - 它具有与 HttpCache 类似的功能,并且您不必包含企业库(即缓存应用程序块)。
参考:http://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache(v=vs.110).aspx
大会:System.Runtime.Caching.dll
命名空间:System.Runtime.Caching
【讨论】: