我有一个函数,它创建一个对象列表并将其返回以存储在ViewBag中。
代码将如下所示:
List<XDocument> xDocs = readXmlFiles(path);// a "new List<XDocument>()" is called
ViewBag.data = xDocs;
return View();我的问题是,如果我们有这样的代码,垃圾收集器是否会释放为xDocs分配的资源?或者,一旦处理了对同一视图的新请求,它是否会被释放?
发布于 2013-05-27 21:14:54
我的问题是,如果我们有这样的代码,垃圾收集器是否会释放为xDocs分配的资源?
是的,它会释放它。一旦请求完成执行,ViewBag就有资格进行垃圾收集。
,或者至少在处理了对同一视图的新请求后会释放它?
垃圾收集发生的确切时间是您无法控制的。CLR会选择最合适的时机来执行它。这可能发生在下一次请求之前或之后。因为您要为每个请求创建一个新的集合,所以一旦不再有任何对它的引用(即,一旦请求完成执行),这个集合就有资格进行垃圾收集。
https://stackoverflow.com/questions/16774038
复制相似问题