我创建了一个控制台应用程序,用于将数据从一个数据库表迁移到另一个数据库中,在该表中迁移了客户记录,因此我必须通知他们更改密码。
public static async Task<bool> SendRegisterEmail(List<MailMessage> mailMessage)
{
bool flag = true;
try
{
var smtp = new SmtpClient();
var taskEmails = mailMessage.Select(x => smtp.SendMailAsync(x));
await Task.WhenAll(taskEmails); // **Error : An asynchronous call is already in progress. It must be completed or canceled before you can call this method**
}
catch (Exception ex)
{
throw ex;
}
return flag;
}
如果我删除等待任务,则电子邮件将成功成功异步发送。但是,当迁移操作完成时,AllAll(taskEmails)不会发送所有电子邮件。他们中的许多人在操作完成后仍在未关闭的控制台应用程序上未发送,并且我有1,00,000条记录,因此,如何在后台或正在运行的应用程序中继续电子邮件发送过程,直到所有电子邮件都成功发送为止?
叮当猫咪
相关分类