This is just an extension of the following question I asked:
Why can't I reach 100% CPU utilization with my parallel tasks code?
 private static int SumParallel()
        {
            var intList = Enumerable.Range(1, 1000_000_000);
            int count = intList.Count();
            int threads = 6;
            List<Task<int>> l = new List<Task<int>>(threads);
            for(int i = 1; i <= threads; i++)
            {
                int skip = ((i - 1) * count) / threads;
                int take = count / threads;
                l.Add(GetSum(intList, skip, take));
            }
            Task.WaitAll(l.ToArray());
            return l.Sum(t => t.Result);
        }
private static Task<int> GetSum(IEnumerable<int> list, int skip, int take)
        {
            return Task.Run(() =>
             {
                 int temp = 0;
                 foreach(int n in list.Skip(skip).Take(take))
                 {
                     if (n % 2 == 0)
                         temp -= n;
                     else
                     {
                         temp += n;
                     }
                 }
                 Console.WriteLine(temp + " " + Task.CurrentId);
                 return temp;
             });
        }
If I modify the number of tasks working in parallel, I get a different sum.
Why is this so?
 
    