我有如下方法发送电子邮件,当任何错误发生在我们的应用程序。是。通过邮件发送错误是一个单独的讨论。
public void EmailErrorDetails()
{
string strBodyMessage = string.Empty;
strBodyMessage = GetEmailBodyMessage();
if (strBodyMessage != String.Empty)
{
MailMessage emailMessage = new MailMessage();
emailMessage.From = new MailAddress(Constants.MailFrom);
emailMessage.To.Add(Constants.MailTo);
emailMessage.Subject = Constants.EmailSubject;
emailMessage.IsBodyHtml = true;
emailMessage.Body = string.Format(strBodyMessage);
SmtpClient client = new SmtpClient();
client.UseDefaultCredentials = false;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.Host = Constants.EmailHostAddress;
client.Port = Convert.ToInt32(Constants.EmailPort);
client.Credentials = new NetworkCredential(Constants.MailFrom, Constants.MailFromPassword);
client.Send(emailMessage);
}
}我希望使此方法在后台异步运行,并使执行向前推进。
我读到client.Send本身使用异步调用。因此,让上述方法调用异步方式有什么好处吗?如果是,我如何实现这一点?
发布于 2013-06-20 14:10:04
我读到
client.Send使用异步调用
假设client实际上是SmtpClient,那么Send 不使用异步调用。SmtpClient有一种用于异步发送电子邮件的特定方法,称为SendAsync --如果您想在后台发送电子邮件,请使用此方法而不是Send。
https://stackoverflow.com/questions/17215761
复制相似问题