前几天我只是想知道这个问题。我不太确定 ASPX 如何管理垃圾处理,但据我所知,“完成加载”不会删除静态内存值或在页面重新加载后。至少就 C 而言,静态意味着内存分配会跟随您的程序,直到程序本身关闭。 ASPX 中也是这样吗?如果我有一个静态值,并且从页面 A 转到页面 B,则该静态值是否仍保留在 RAM 中,直到它们离开应用程序,或者一旦我不再位于页面 A 上,该值是否会被删除? (转到另一个网站,将其实例从服务器的应用程序池中删除)。
从我的经历来看:
public static class foo
{
public static int x;
}
protected void Page_Load(object sender, EventArgs e)
{
foo.x++; //This will continue to increment from the last value before reload
}
在 ASP.NET 中应避免使用静态类。它们保留在内存中,直到应用程序重新启动为止,并且会受到许多并发错误和竞争条件的影响。
并且关闭用户会话(浏览器会话)不会重新启动应用程序!即使用户离开并返回,它们也会保留在内存中。所以真的要避免静态类!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)