c# - 页面加载后对象是否符合垃圾回收条件?

标签 c# asp.net garbage-collection

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

目前我有这样的代码:

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

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

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

我通常使用 PHP 创建 Web 应用程序,所以我猜测 object 在页面加载完成后有资格进行 GC,因为它不知道用户何时离开页面。

最佳答案

每当有请求时,ASP 都会创建一个新的 Page 对象,一旦将响应发回给用户,它就不会保留对该 Page 对象的引用,所以只要您自己没有找到某种方法来保留对该 Page 对象的实时引用,发送响应后,Page 和所有对象通过该页面可访问的内容有资格进行垃圾收集。

关于c# - 页面加载后对象是否符合垃圾回收条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24806748/

相关文章:

c# - asp.net 复选框事件未触发

c# - MVVM 光 : how to unregister Messenger

c# - 如何使用 ObjectListView 或 TreeListView 显示树结构

c# - GetLength() 的参数

asp.net - 单击 LinkBut​​ton 时防止 GridView 调整大小

asp.net - 在操作之外执行异步操作 asp.net mvc

java - G1(垃圾收集器)什么时候开始运行,它首先收集哪个内存区域? java 8 上有哪些新的 GC 更新?

java - 超过 12GB 时将忽略最大堆大小

java - GC 是否从 Metaspace 收集垃圾?

c# - ASP.NET MVC 4 和 WYSIWYG 编辑器验证