首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于析构函数的有关问题

2011-12-27 
关于析构函数的问题小弟我写了一个生成验证码的方法,然后我要把在服务器端生成的图片在用户登录成功后删除

关于析构函数的问题
小弟我写了一个生成验证码的方法,然后我要把在服务器端生成的图片在用户登录成功后删除,所以用了析构函数来控制,但是造成了图片显示不稳定,时有时无,请问如何解决,部分主要代码如下:请高手指点谢谢
  public   class   ValidateCode
        {
               
                public   string   imgFilePath;
                public   string   imgFileName;
               
                public   void   GenerateCodeImage()
                {
                        图片生成的方法
                }


                public   void   GetCode()
                {
                          随即获得数组方法                      
                }
               
                主要是这里:
                public   ValidateCode(string   imgFilePath)
                {
                        this.imgFilePath   =   imgFilePath;
                }

                ~ValidateCode()
                {
                        File.Delete(this.imgFilePath   +   this.imgFileName);
                }

        }

[解决办法]
还有你的方式有些问题,bs程序是请求应答类型,客户端请求,服务器应答完毕后会认为应用已经结束,自然会回收你的引用。考虑用session纪录图片信息,session_end时删除

[解决办法]
应该继承IDisposable,实现Dispose方法吧.
[解决办法]
web程序(根据.net原理)的工作原理和客户端程序不同,当有用户请求某个页面的时候大致过程如下:

1.在服务器上临时构造该页面(缓存的页面除外)
2.将生成的页面呈现给客户端
3.销毁资源

.net自动垃圾回收不需要析构函数,最多调用Dispose方法告诉垃圾回收器可以回收这个资源

热点排行