【发布时间】:2017-08-02 14:32:47
【问题描述】:
我想使用Parallel.ForEach 添加 1000 多个任务。下面的代码用于发送电子邮件通知。问题是它仅适用于大约 150 ~ 200 条通知并且我收到了电子邮件,但之后代码被冻结并且没有收到任何电子邮件。
有人可以指导我正确的方向吗?
var exceptions = new ConcurrentQueue<Exception>();
try
{
List<ParallelWorker_EmailNotification> workers = new List<ParallelWorker_EmailNotification>();
foreach (Email mail in listEmails)
{
workers.Add(new ParallelWorker_EmailNotification(mail));
}
Parallel.ForEach(workers, async worker =>
{
try
{
await worker.SendNotification();
}
catch (Exception ex)
{
exceptions.Enqueue(ex);
}
});
}
catch (Exception ex)
{
exceptions.Enqueue(ex);
}
【问题讨论】:
-
从 ParallelWorker_EmailNotification 添加代码
标签: c# .net linq parallel-processing