处理内存不足的情况

Ada*_*ski 3 c#

我有一个像缓存一样的对象.如果需要,它可以填充整个可用内存.

我希望能够根据需要将内存恢复到操作系统.因此,如果任何其他分配出现问题,VM(或GC或其他任何人)应该在使用OutOfMemory异常失败之前让我的'缓存'缩小.

我怎么能在C#中做到这一点?

Dar*_*rov 9

我建议你使用内置的Cache而不是重新发明轮子.它会自动处理这样的情况:如果内存开始变低,它将根据优先级使项目到期.它也非常易于扩展,您可以轻松地将其与流行的提供程序(如memcached)一起分发.

请注意,System.Runtime.Caching仅在.NET 4.0中可用.早期版本中提供了其他缓存,例如Enterprise library,System.Web.Caching,Velocity,...