SmtpClient.Send导致内存泄漏

时间:2010-01-22 07:18:34

标签: .net smtp

调用SmtpClient.Send()时出现内存泄漏。

我有发送电子邮件的服务。我注意到TaskManager中存在内存泄漏。我注释掉SmtpClient.Send()行,当我再次启动服务时,我注意到内存使用量没有增加。

1 个答案:

答案 0 :(得分:3)

假设Taskmgr.exe是一个泄漏检测工具,这是一个非常常见的错误。 .NET垃圾收集器和Windows堆管理器的组合非常复杂,无法从您在该工具中看到的数字进行逆向工程。

通过发送数千封电子邮件向自己证明。如果SmtpClient.Send()确实泄漏,那么您的程序将很快崩溃并出现OutOfMemory异常。使用Perfmon.exe和.NET CLR内存类别中的性能计数器,更深入地了解.NET程序的内存使用情况。还有一本好书,比如Richter通过C#的CLR。