读书人

关于析构函数的有关问题

发布时间: 2011-12-27 22:22:55 作者: rapoo

关于析构函数的问题
小弟我写了一个生成验证码的方法,然后我要把在服务器端生成的图片在用户登录成功后删除,所以用了析构函数来控制,但是造成了图片显示不稳定,时有时无,请问如何解决,部分主要代码如下:请高手指点谢谢
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方法告诉垃圾回收器可以回收这个资源

读书人网 >C#

热点推荐