首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SendEmailAsync效益可疑

SendEmailAsync效益可疑
EN

Stack Overflow用户
提问于 2012-12-08 17:44:24
回答 1查看 152关注 0票数 0

我在MSDN文档()上读到了这篇文章,这似乎意味着在我的代码中调用SendAsync方法之后,我仍然需要等待,下面粘贴了这个方法。这是对的吗?如果是的话,那么我最好使用同步方法发送而不是。我的目标是进入循环中的下一封电子邮件并发送它,而不等待上一封邮件被发送,这将使我能够更快地处理emailMessages集合,而不是使用send方法。但这似乎不是真的。

调用SendAsync后,必须等待电子邮件传输完成后,才能尝试使用send或SendAsync发送另一条电子邮件。

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

代码语言:javascript
复制
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);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-08 18:55:15

async方法相对于非异步替代方法的优点是,您不需要阻塞当前线程。在不想阻塞UI线程的UI环境中,这尤其有用,同时也防止了阻塞线程池线程的需要。

如果您只打算对结果执行阻塞等待,则它与非异步替代方案相比没有任何优势。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13780092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档