次のように、foreach を使用して電子メールを送信する方法があります。
static void Main(string[] args)
{
foreach(var user in GetAllUsers())
{
SendMail(user.Email);
}
}
その方法を改善する必要があります。SendMail メソッドが各ユーザーに対して毎回実行されるのを待ちたくないので、マルチスレッドを使用します。それを行うための提案はありますか?ありがとう
次のように、foreach を使用して電子メールを送信する方法があります。
static void Main(string[] args)
{
foreach(var user in GetAllUsers())
{
SendMail(user.Email);
}
}
その方法を改善する必要があります。SendMail メソッドが各ユーザーに対して毎回実行されるのを待ちたくないので、マルチスレッドを使用します。それを行うための提案はありますか?ありがとう
並列 foreach を使用してみてください。いえ
Parallel.ForEach(GetAllUsers(), user=>
{
SendMail(user.Email);
});
このようなものを試すことができます
private void Send()
{
Parallel.Foreach(GetAllUsers(), user =>
{
SendMail(user.Email);
});
}
これを行う最も簡単な方法は、スレッドプーリングだと思います。.Net を使用すると、これが非常に簡単になります。詳細については、こちらを参照してください。