代码之家  ›  专栏  ›  技术社区  ›  JBeckton

ASP.NET类型的数据集使用寿命

  •  1
  • JBeckton  · 技术社区  · 14 年前

    使用完数据集后会发生什么。例如,如果我为网格创建和填充数据集,当用户离开该页面或注销时,我假设数据集仍在内存中?

    每个用户都有自己的数据集实例吗?换句话说,如果两个用户访问同一个使用网格的页面,他们是否都从服务器内存中为各自的数据集实例提供服务?

    3 回复  |  直到 14 年前
        1
  •  3
  •   Mitchel Sellers    14 年前

    如果不将其放入会话或应用程序缓存中,那么一旦页面呈现,它将被垃圾收集。

    ASP.NET是无状态的,除非您使用会话或缓存,或者将其作为静态方法,否则它将尽快超出范围。

    例如,如果页面加载中有以下内容。

    DataSet myDataset = new DataSet();
    //Do stuff here to fill
    dgrMyGrid.DataSource = myDataset;
    dgrMyGrid.DataBind();
    

    在这个方法调用的最后,myDataSet将被用于垃圾收集。

        2
  •  0
  •   TomTom    14 年前

    它一直在内存中,直到被收集为止。它是在垃圾收集器启动(由于内存压力)时收集的,并且应该收集。阅读文档中的垃圾收集器。

        3
  •  0
  •   JB King    14 年前

    我想垃圾收集器会在应用程序池回收时回收内存,这是我第一个问题的答案。

    在第二个问题上,这取决于你是如何设置的。通过使用应用程序对象,您可以在用户之间传递数据集,这样他们就可以看到相同的数据,或者您可以对其进行结构,以便每个用户都有自己的数据副本。