Jef*_*hen 9 c# dispose smtpclient sendasync
当我使用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);
Run Code Online (Sandbox Code Playgroud)
在SendAsyncCallback方法中,我应该打电话sc.Dispose(),还是mail.Dispose()?
我检查了MSDN文件,一个例子调用了MailMessage.Dispose(),但是这个dispose方法还会配置SmtpClient实例吗?
非常感谢.
您应该同时处理 theMailMessage和SmtpClientin SendAsyncCallback。
处理 MailMessage 不会自动处理 SmtpClient(因为您可能希望使用相同的 SmtpClient 发送两条消息,并且您不希望在处理第一条消息后立即处理客户端)。