System.Net.Mail.MailMessage在发送后不释放内存

时间:2012-09-27 02:16:55

标签: c#-4.0 smtpclient mailmessage

我正在开发一个EmailService来阅读电子邮件表(Sql)的新邮件。这是一个用C#和.NET 4.0编写的Windows服务。每个电子邮件记录的邮件体大小约为12kb ...在发送每封电子邮件后,我的服务调用MailMessage.Disposed()方法并将SmtpClient设置为null。但是我的服务的内存不断增加,而不是回到启动的服务(占用大约7mb的系统内存),即使没有读取新的电子邮件。它经常消耗70mb - 120mb的系统内存,这太奇怪了:(

你有什么解决方案可以减少我上面的情况吗?

谢谢你,最诚挚的问候,

2 个答案:

答案 0 :(得分:0)

之前我已经看到过这种情况,系统资源在.exe关闭之前并没有实际释放(在一些Windows窗体编程的2.0天之后)。

答案 1 :(得分:0)

您应该using使用SmtpClientMailMessage个对象:

using(SmtpClient client = new SmtpClient("ipaddress")){
using(MailMessage message = new MailMessage()){

//Do something to fill the message...

client.Send(message);

}

}