簡體   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