13

次のように、foreach を使用して電子メールを送信する方法があります。

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

その方法を改善する必要があります。SendMail メソッドが各ユーザーに対して毎回実行されるのを待ちたくないので、マルチスレッドを使用します。それを行うための提案はありますか?ありがとう

4

3 に答える 3

28

並列 foreach を使用してみてください。いえ

Parallel.ForEach(GetAllUsers(), user=>
{
  SendMail(user.Email);
});
于 2013-10-23T12:00:15.123 に答える
11

このようなものを試すことができます

private void Send()
{
    Parallel.Foreach(GetAllUsers(), user => 
    {
       SendMail(user.Email);
    });
}
于 2013-10-23T12:00:30.627 に答える
3

これを行う最も簡単な方法は、スレッドプーリングだと思います。.Net を使用すると、これが非常に簡単になります。詳細については、こちらを参照してください。

于 2013-10-23T12:25:38.363 に答える