我正在开发一个EmailService来阅读电子邮件表(Sql)的新邮件。这是一个用C#和.NET 4.0编写的Windows服务。每个电子邮件记录的邮件体大小约为12kb ...在发送每封电子邮件后,我的服务调用MailMessage.Disposed()方法并将SmtpClient设置为null。但是我的服务的内存不断增加,而不是回到启动的服务(占用大约7mb的系统内存),即使没有读取新的电子邮件。它经常消耗70mb - 120mb的系统内存,这太奇怪了:(
你有什么解决方案可以减少我上面的情况吗?
谢谢你,最诚挚的问候,
答案 0 :(得分:0)
之前我已经看到过这种情况,系统资源在.exe关闭之前并没有实际释放(在一些Windows窗体编程的2.0天之后)。
答案 1 :(得分:0)
您应该using
使用SmtpClient
和MailMessage
个对象:
using(SmtpClient client = new SmtpClient("ipaddress")){
using(MailMessage message = new MailMessage()){
//Do something to fill the message...
client.Send(message);
}
}