我编写了这段代码来检查AsParallel()是否可以使可枚举方法更快地运行
删除AsParallel()后我得到了相似的时间,所以我想问你:
我做错了什么或者AsParallel只能在PLINQ中使用类似查询的方法吗?
public static void Main(string[] args)
{
var listt = new List<int>();
for(int i = 0; i <= 999999; i++)
listt.Add(i);
Console.WriteLine(DateTime.Now.ToString("ss.FFF"));
for(int i = 0; i <= 9999; i++)
qq(listt);
Console.WriteLine(DateTime.Now.ToString("ss.FFF"));
}
static void qq(List<int> listt)
{
var l = listt.AsParallel().Where(x => x%2 == 0);
int q = l.FirstOrDefault(); //added after question has been posted
q = q + 3;
}
编辑:
我刚添加了int q = l.FirstOrDefault();和q = q + 3进入qq方法使用&#34; l&#34;变量和AsParallel版本甚至可以解决问题
在这个站点中,他们说如果元素数量相对较小,AsParallel可以使执行变慢,但listt包含999999个元素。
https://www.dotnetperls.com/asparallel
有人能解释为什么它会变慢吗?