Лучший способ сделать многопоточный цикл foreach [закрыт]
У меня есть метод отправки электронной почты с foreach, например:
static void Main(string[] args)
{
foreach(var user in GetAllUsers())
{
SendMail(user.Email);
}
}
Мне нужно усовершенствовать этот метод. Используя многопоточность, потому что я не хочу ждать, когда метод SendMail будет выполняться каждый раз для каждого пользователя.
Есть какие-нибудь способы сделать это?
Спасибо
3 ответов:
Попробуйте использовать параллельный foreach. То есть
Parallel.ForEach(GetAllUsers(), user=> { SendMail(user.Email); });
Вы можете попробовать что-то вроде этого
private void Send() { Parallel.Foreach(GetAllUsers(), user => { SendMail(user.Email); }); }
Я думаю, что самый простой способ сделать это-объединить потоки. .Net делает это довольно легко, и вы можете прочитать больше об этом здесь.
Comments