【发布时间】:2014-09-24 06:55:06
【问题描述】:
public Dictionary<string, IMYObject> MYObjectContainer
{
get
{
if (Session["MYObjectPool"] == null)
Session["MYObjectPool"] = new Dictionary<string,IMYObject>();
return (Dictionary<string, IMYObject>)Session["MYObjectPool"];
}
set
{
Session["MYObjectPool"] = value;
}
}
public ActionResult Close()
{
try
{
MyObject obj = this.MYObjectContainer["Key"]
this.MYObjectContainer = null;
return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}
catch (Exception Ex)
{
throw X
}
}
当对象没有有效的裁判时,垃圾收集器将删除 这里有两位裁判,
1.obj(局部变量)
2.会话
首先我通过设置this.MYObjectContainer = null; 使会话裁判无效
其次,当函数结束时,obj 将被弹出堆栈,因此第二个裁判无效
这是否使MYObjectContainer 有资格清除垃圾收集器?
如果我的问题完全错误,请忽略,请指教?
垃圾收集器如何在 ASP.NET 会话中工作?
【问题讨论】:
-
垃圾收集器将销毁会话作为会话超时的间接后果。我的建议是不要担心这方面的垃圾收集。
-
如果我使用 Session.Abandon() 注销,这也会使垃圾收集器立即销毁会话。
-
The garbage collector will delete when the object has no valid refere- 这是错误的。你有read the documentation on garbage collection on .NET吗? -
可以说是假的吗?
标签: c# asp.net asp.net-mvc session garbage-collection