我想知道什么时候引用(特别是在类级定义的引用)超出了.net Web应用程序的范围,以便更好地了解它们何时有资格进行垃圾回收。
目前我的代码如下:
public class SomeClass
{
Object object = new Object();
protected void Page_Load(object sender, EventArgs e)
{
// some code
}
}
对象会在页面加载后超出范围(并且有资格进行垃圾回收),还是在用户离开页面之后?
我通常使用PHP创建Web应用程序,所以我认为对象在页面加载完成后才有资格使用GC,因为它不知道用户何时导航从页面。
答案 0 :(得分:5)
每当发出请求时,ASP都会创建一个新的Page
对象,并且一旦将响应发送回用户,它就不会保留对该Page
对象的引用,所以只要你找不到某种方法来保持对Page
对象的实时引用,一旦发送响应,Page
和只能通过该页面访问的所有对象都有资格进行垃圾回收。