完成后使用数据集会发生什么。例如,如果我为网格创建并填充数据集,当用户离开该页面或注销时,我假设数据集仍在内存中?
每个用户是否都有自己的数据集实例?换句话说,如果2个用户点击使用网格的同一页面,他们每个用户都从服务器内存中提供了自己的数据集实例吗?
答案 0 :(得分:3)
如果您没有将其放入会话或应用程序缓存中,则会在页面呈现后立即对其进行垃圾回收。
ASP.NET是无状态的,除非您使用会话或缓存,或者将其作为静态方法使用,否则它将尽快超出范围。
示例,如果您在页面加载中有以下内容。
DataSet myDataset = new DataSet();
//Do stuff here to fill
dgrMyGrid.DataSource = myDataset;
dgrMyGrid.DataBind();
在此方法调用结束时,myDataset将用于垃圾回收。
答案 1 :(得分:0)
直到收集它为止。它在垃圾收集器启动时收集(由于内存压力)并且应该收集。阅读文档中的垃圾收集器。
答案 2 :(得分:0)
我猜想当应用程序池回收时,垃圾收集器会回收内存,这是我对第一个问题的回答。
关于第二个问题,这取决于你如何设置。通过使用Application对象,您可以在用户之间传递数据集,这样他们就可以看到相同的数据,或者您可以构建它,以便每个数据都有自己的数据副本。