Parallel.ForEach
を使用して1000以上のタスクを追加します。以下のコードは電子メール通知を送信するためのコードです。問題は、それが約150〜200の通知のためだけに働くということです。&私は電子メールを受信しますが、その後はコードがフリーズします&電子メールは受信されません。しばらくしてからParallel.ForEachがフリーズします
誰かが正しい方向に私を導くことができますか?
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のコードを追加してください。 – Gusman