繁体   English   中英

SendEmailAsync让人怀疑

[英]SendEmailAsync benefits doubtful

我在MSDN文档中看到了这一点, 这似乎意味着我仍然需要在我的代码中调用SendAsync方法之后等待,该方法粘贴在下面。 这是正确的吗? 如果是,那么我也可以使用Send而不是SendAsync的同步方法。 我的目标是转到循环中的下一封电子邮件并发送它而不等待发送上一封邮件,这样我就可以比使用Send方法更快地处理emailMessages集合。 但这似乎不正确。

调用SendAsync后,必须等待电子邮件传输完成后再尝试使用Send或SendAsync发送另一封电子邮件。

我正在使用C#和.Net framework 4.5。 在我的代码中,我尝试使用SendAsync方法在循环内发送多封电子邮件,如下面的代码所示。

List<EmailMessage> emailMessages = DAL.GetEmailsToBeSent();
SmtpClient client = new SmtpClient(); 

foreach(EmailMessage emailMessage in emailMessages)
{
  //create a message object from emailMessage object and then send it asynchronously
  client.SendAsync(message);
 //client.Send(message);
}

async方法优于非异步替代方法的优点是您不需要阻止当前线程。 这在您不希望阻止UI线程的UI环境中特别有用,并且还可以防止阻塞线程池线程。

如果您只是对结果进行阻塞等待,那么它与非异步备选方案相比没有任何优势。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM