AsParallel是否与Enumerable方法一起使用?

时间:2017-06-28 07:42:15

标签: c# .net multithreading plinq

我编写了这段代码来检查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

有人能解释为什么它会变慢吗?

0 个答案:

没有答案