我有以下用于发送电子邮件的方法:
private SmtpClient _client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("address@gmail.com", "password"),
EnableSsl = true
};
public void DoThis(){
_client.Send("from@gmail.com", to.Email, "Subject", "Body");}
public void DoThat(){
_client.Send("from@gmail.com", to.Email, "Subject", "Body");}
但它在发送电子邮件之前一直阻塞 Web 应用程序,所以我决定尝试异步发送:
public void DoThis(){
var message = new MailMessage("from@gmail.com", to.Email, "Subject", "Body");
_client.SendAsync(message, null);
}
如果我调试,我可以看到它被异步处理,但我总是得到以下信息:
异步模块或处理程序已完成,而异步操作仍处于挂起状态。
我究竟做错了什么?