Do Stack() 将由垃圾回收器 .Net 收集
本文关键字:Net 收集 Stack Do | 更新日期: 2023-09-27 17:57:11
在myFunction()
中,我定义了一个堆栈,如: Stack myStack = new Stack()
.如果myStack
在服务器上多次运行,myFunction()
是否会被 GC 收集? 如果没有,请向我建议一种在 asp.Net 中使用堆栈之类的方法或更好地提高性能的方法。我还在学习 asp.Net
如果在方法中本地声明变量,并且在方法范围之外不存在对它的引用,则在方法结束时,局部变量持有的引用将不再存在。(以前)引用的对象不再具有任何引用,因此符合垃圾回收的条件。
如果您在myFunction()
调用范围内使用 myStack
变量,则在myFunction()
调用结束之前不会对其进行垃圾回收。例如:
public void myFunction()
{
Stack myStack = new Stack();
//do stuff with myStack
}
在这种情况下,如果调用 myFunction()
,则myFunction()
调用结束后,将垃圾回收myStack
变量。但是,如果要访问 myFunction()
方法内部的 myStack
变量(从其他某个范围),则不会在myFunction()
调用结束时对其进行垃圾回收,因为(可能)有另一个对它的引用。