Лучший способ сделать многопоточный цикл foreach [закрыт]



У меня есть метод отправки электронной почты с foreach, например:



static void Main(string[] args)
{
foreach(var user in GetAllUsers())
{
SendMail(user.Email);
}
}


Мне нужно усовершенствовать этот метод. Используя многопоточность, потому что я не хочу ждать, когда метод SendMail будет выполняться каждый раз для каждого пользователя.
Есть какие-нибудь способы сделать это?
Спасибо
717   3  

3 ответов:

Попробуйте использовать параллельный foreach. То есть

Parallel.ForEach(GetAllUsers(), user=>
{
  SendMail(user.Email);
});

Вы можете попробовать что-то вроде этого

private void Send()
{
    Parallel.Foreach(GetAllUsers(), user => 
    {
       SendMail(user.Email);
    });
}

Я думаю, что самый простой способ сделать это-объединить потоки. .Net делает это довольно легко, и вы можете прочитать больше об этом здесь.

Comments

    Ничего не найдено.