当我使用SmtpClient的SendAsync发送电子邮件时,如何处理smtpclient
实例正确吗?
比方说:
MailMessage mail = new System.Net.Mail.MailMessage()
{
Body = MailBody.ToString(),
IsBodyHtml = true,
From = new MailAddress(FromEmail, FromEmailTitle),
Subject = MailSubject
};
mail.To.Add(new MailAddress(i.Email, ""));
SmtpClient sc = new SmtpClient(SmtpServerAddress);
//Add SendAsyncCallback to SendCompleted
sc.SendCompleted += new SendCompletedEventHandler(SendAsyncCallback);
//using SmtpClient to make async send (Should I pass sc or mail into SendAsyncCallback?)
sc.SendAsync(mail, sc);
In the SendAsyncCallback
方法,我应该调用sc.Dispose()
, or mail.Dispose()
?
我查了MSDN文档,一个例子调用MailMessage.Dispose(),但是这个dispose方法也会处理SmtpClient
实例?
您应该处置这两个MailMessage
和SmtpClient
in SendAsyncCallback
.
处置 MailMessage 不会自动处置 SmtpClient(因为您可能想要使用同一个 SmtpClient 发送两条消息,并且您不希望在处置第一条消息后立即处置客户端)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)