静态类,静态变量被回收??

mimijidi 2007-10-20 07:34:07
有一个这样的类:
public class ConfigUtil
{

public static int count=0;
public ConfigUtil()
{
count++;//不用解释吧?每次new ConfigUtil,count变量将累加1
}
}

用网页来调用上面的静态变量:
protected void Page_Load(object sender, EventArgs e)
{

ConfigUtil c = new ConfigUtil();
Response.Write(ConfigUtil.count + "<br/>");
ConfigUtil C2 = new ConfigUtil();
Response.Write(ConfigUtil.count+ "<br/>");
}

结果输出是:
1
2
看起来好像没错,该静态变量count实现了累加效果
但是当你再用同样网址运行一下,或者把刷新一下页面,结果显示还是1和2
问题就是:count该变量是静态变量,是永久放在内存中,如果有很多用户访问该网页,该变量应该会一直累加,
也就是说可以达到统计访问该网页的次数,但是事实上没有达到预期的效果,一个用户访问完了该变量就被会回收了,下一个用户访问count变量又重新开始初始化,郁闷啊...
...全文
340 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mimijidi 2007-11-03
  • 打赏
  • 举报
回复
我想应该是xp的iis有问题,我在iis中配置了虚拟目录,并且不是用vs的内置刘览器来浏览,改天用2003的试一下
因为我写了一些开发组件,我希望在内存中初始化好几个组件配置类实例并通过静态购造涵数赋值给几个静态字段,然后开发组件根据需要引用这些静态字段
iamybj 2007-10-21
  • 打赏
  • 举报
回复
我系统是windows server 2008 beta3,在系统自带IIS7上运行的NET2.0
----------
这个是问题的关键,一般来说静态类\对象装入内存后回保持植不便,但是你的只个测试班采用的是内制的浏览器,每次刷新可能是重新启动了应用程序2
cfanwolf 2007-10-21
  • 打赏
  • 举报
回复

jeremyyang824 说的对。为什么用不用app的来做啊。
viena 2007-10-21
  • 打赏
  • 举报
回复
to jhkemail

//因为它不是唯一实例的。只是单一引用,在引用完成之后,即会被垃圾回收
不懂就说不懂,没人笑话你,但是不要乱说话~
viena 2007-10-21
  • 打赏
  • 举报
回复
不知道是不是这个问题,但可能被多个并发线程修改的字段应加volatile关键字,并且在访问时要lock
破碎的脸 2007-10-21
  • 打赏
  • 举报
回复
晕,上面12个星星。。。。
破碎的脸 2007-10-21
  • 打赏
  • 举报
回复
对,因为它不是唯一实例的。只是单一引用,在引用完成之后,即会被垃圾回收。
viena 2007-10-21
  • 打赏
  • 举报
回复
我系统是windows server 2008 beta3,在系统自带IIS7上运行的NET2.0
但我想这与这些似乎没有关系~
viena 2007-10-21
  • 打赏
  • 举报
回复
看来是楼主的人品问题~
viena 2007-10-21
  • 打赏
  • 举报
回复
我这儿没有问题,copy楼主的代码
第一次1,2;刷新一下页面3,4,再刷新5,6……
mimijidi 2007-10-21
  • 打赏
  • 举报
回复
我不是要做访问记数,我只是真实测试一下静态变量是不是保留着值,静态构造函数是不是只被调用一次,
我的系统是xp的,测试结果是静态类的静态构造函数每刷新一次就被调用一次,(偶尔是正常的,只被调用一次,哈哈)
jeremyyang824 2007-10-20
  • 打赏
  • 举报
回复
web无状态 访问记数用 Application做

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧