我有一个带有 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。IE
Parallel.ForEach(GetAllUsers(), user=>
{
SendMail(user.Email);
});
你可以试试这样的
private void Send()
{
Parallel.Foreach(GetAllUsers(), user =>
{
SendMail(user.Email);
});
}
我认为最简单的方法是线程池。.Net 使这变得非常容易,您可以在此处阅读有关它的更多信息。