当前位置:编程学习 > C#/ASP.NET >>

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

有一个这样的类:
 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变量又重新开始初始化,郁闷啊... --------------------编程问答-------------------- web无状态 访问记数用 Application做 --------------------编程问答-------------------- 我不是要做访问记数,我只是真实测试一下静态变量是不是保留着值,静态构造函数是不是只被调用一次,
我的系统是xp的,测试结果是静态类的静态构造函数每刷新一次就被调用一次,(偶尔是正常的,只被调用一次,哈哈)
--------------------编程问答-------------------- 我这儿没有问题,copy楼主的代码
第一次1,2;刷新一下页面3,4,再刷新5,6…… --------------------编程问答-------------------- 看来是楼主的人品问题~ --------------------编程问答-------------------- 我系统是windows server 2008 beta3,在系统自带IIS7上运行的NET2.0
但我想这与这些似乎没有关系~ --------------------编程问答-------------------- 对,因为它不是唯一实例的。只是单一引用,在引用完成之后,即会被垃圾回收。 --------------------编程问答-------------------- 晕,上面12个星星。。。。 --------------------编程问答-------------------- 不知道是不是这个问题,但可能被多个并发线程修改的字段应加volatile关键字,并且在访问时要lock --------------------编程问答-------------------- to jhkemail

//因为它不是唯一实例的。只是单一引用,在引用完成之后,即会被垃圾回收
不懂就说不懂,没人笑话你,但是不要乱说话~
--------------------编程问答--------------------
jeremyyang824 说的对。为什么用不用app的来做啊。 --------------------编程问答-------------------- 我系统是windows server 2008 beta3,在系统自带IIS7上运行的NET2.0 
----------
这个是问题的关键,一般来说静态类\对象装入内存后回保持植不便,但是你的只个测试班采用的是内制的浏览器,每次刷新可能是重新启动了应用程序2 --------------------编程问答-------------------- 我想应该是xp的iis有问题,我在iis中配置了虚拟目录,并且不是用vs的内置刘览器来浏览,改天用2003的试一下
因为我写了一些开发组件,我希望在内存中初始化好几个组件配置类实例并通过静态购造涵数赋值给几个静态字段,然后开发组件根据需要引用这些静态字段
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,