页面加载后,对象是否有资格进行垃圾回收?

时间:2014-07-17 14:47:32

标签: c# asp.net garbage-collection

我想知道什么时候引用(特别是在类级定义的引用)超出了.net Web应用程序的范围,以便更好地了解它们何时有资格进行垃圾回收。

目前我的代码如下:

public class SomeClass
{
  Object object = new Object();

  protected void Page_Load(object sender, EventArgs e)
  {
    // some code
  }
}

对象会在页面加载后超出范围(并且有资格进行垃圾回收),还是在用户离开页面之后?

我通常使用PHP创建Web应用程序,所以我认为对象在页面加载完成后才有资格使用GC,因为它不知道用户何时导航从页面。

1 个答案:

答案 0 :(得分:5)

每当发出请求时,ASP都会创建一个新的Page对象,并且一旦将响应发送回用户,它就不会保留对该Page对象的引用,所以只要你找不到某种方法来保持对Page对象的实时引用,一旦发送响应,Page和只能通过该页面访问的所有对象都有资格进行垃圾回收。