我有一个foreach的发送电子邮件方法,如下所示:
static void Main(string[] args)
{
foreach(var user in GetAllUsers())
{
SendMail(user.Email);
}
}
我需要改进这种方法。使用多线程,因为我不想等待SendMail方法每次为每个用户执行。 有没有这样的消化呢? 感谢
答案 0 :(得分:23)
尝试使用并行foreach。即。
Parallel.ForEach(GetAllUsers(), user=>
{
SendMail(user.Email);
});
答案 1 :(得分:9)
您可以尝试这样的事情
private void Send()
{
Parallel.Foreach(GetAllUsers(), user =>
{
SendMail(user.Email);
});
}
答案 2 :(得分:3)
我认为最简单的方法是使用线程池。 .Net让这很简单,你可以阅读更多关于here.
的信息