MD5编码的内存泄露

MD5CryptoServiceProvider 若是屡次使用会产生内存溢出,以下这样调用几百万次就会出现内存
溢出。
public  static  string  MD5Encode( string  source)
{
     if  ( string .IsNullOrEmpty(source))
         return  source;
 
     MD5 md5 =  new  MD5CryptoServiceProvider();
     byte [] s = md5.ComputeHash(Encoding.UTF8.GetBytes(source));
     return  BitConverter.ToString(s).Replace( "-" "" );
}
 
 
缘由:
    MD5CryptoServiceProvider 调用了非托管对象,错误的使用方法致使非托管对象的没法释放
 
解决办法:
    方法一:调用md5.Dispose()方法
    方法二:使用MD5CryptoServiceProvider方法时使用using方法,让程序自动释放相关资源。
 
此问题在开发LogParser时遇到过,后来经过using解决了,可是未详细了解具体致使缘由,经过阅
读博客发现了详细描述,在此进行记录,  
 
详细描述:
http://my.oschina.net/runescape/blog/552942
相关文章
相关标签/搜索