【发布时间】:2017-01-18 05:25:56
【问题描述】:
我有一个 C# 控制台应用程序,它的最后一步是 SendMail 功能。我可以异步发送此邮件,还是该过程会在邮件发送之前结束?由于 SendMail 函数是最后一步,我担心应用程序将在不等待异步 SendMail 进程完成的情况下退出。在这个函数之前有几个步骤发生了我
public static void function1()
{
//step1
//step2
SendMail();
}
public static void SendMail()
{
MailMessage mailMessage = new MailMessage();
try
{
MailTemplate template = new MailTemplate();
SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = true;
//set SMTP host and credentials
//set mailMessage body, from_email, to_email, message body
smtpClient.Send(mailMessage);
}
catch (Exception e)
{
Logger.Error(e.Message + e.StackTrace);
}
finally
{
mailMessage.Dispose();
}
}
【问题讨论】:
-
您应该显示代码,例如
void async SendEmail ...,以及在控制台应用程序事件生命周期中调用它的位置。如果没有这些信息,很难为您提供帮助。请阅读How to Ask 了解有关编写更好问题的其他提示。 -
您意识到您展示的内容实际上并不是异步的,对吧?如果你正在做一些异步的事情,你能展示那部分吗? (现在写的问题应该在技术上关闭,因为不可重现)。
标签: c# email asynchronous sendmail