我正在开发一个应用程序,用户在窗口中的某个按钮上单击/按 Enter 键,该应用程序会执行一些检查并确定是否发送几封电子邮件,然后显示另一个带有消息的窗口。
我的问题是,发送 2 封电子邮件会明显减慢进程,并且在发送过程中的一些(~8)秒内,第一个窗口看起来冻结了。
有什么办法可以让这些电子邮件在后台发送并立即显示下一个窗口吗?
请不要用“使用 X 类”或“仅使用 X 方法”来限制你的答案,因为我还不太熟悉该语言,如果能提供更多信息,我们将不胜感激。
Thanks.
从.NET 4.5开始,SmtpClient实现了异步等待方法SendMailAsync http://msdn.microsoft.com/en-us/library/hh193922%28v=vs.110%29.aspx。
因此,异步发送电子邮件如下:
public async Task SendEmail(string toEmailAddress, string emailSubject, string emailMessage)
{
var message = new MailMessage();
message.To.Add(toEmailAddress);
message.Subject = emailSubject;
message.Body = emailMessage;
using (var smtpClient = new SmtpClient())
{
await smtpClient.SendMailAsync(message);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)