我正在寻找一种连接到 ASP.NET 缓存机制中的垃圾收集例程的方法。作为测试,我将以下代码放入 .aspx 文件中。我希望 CacheItemRemoveCallback 被解雇,但事实并非如此。有谁知道为什么?是因为我在 MS Web 开发服务器而不是完整的 IIS 实例下运行吗?
private static List<string> _bigData = new List<string>();
protected void Page_Load(object sender, EventArgs e)
{
Cache.Add("a", " ".PadRight(1048576), null, DateTime.Now.AddYears(1), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Low,
new System.Web.Caching.CacheItemRemovedCallback((s, o, r) => {
// This code is never run
}));
while (true)
{
_bigData.Add(" ".PadRight(1048576));
Thread.Sleep(50);
}
}