Может ли кто-нибудь сказать мне, какой именно код Плинка для этого? Я добавляю квадратный корень из абсолютного значения синуса каждого элемента для двойного массива, но Плинк дает мне неправильный результат.Плинк дает разные результаты от Линка - что я делаю неправильно?
Выход из этой программы:
Linq агрегат = +75,8310477905274 (правильный) PLINQ агрегат = 38,0263653589291 (примерно вдвое меньше, чем должно быть)
я должен делать что-то неправильно, но я не могу выяснить, что ...
(Я бегу это с Visual Studio 2008 на Core 2 Duo Windows 7 x64 ПК.)
Вот код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
double[] array = new double[100];
for (int i = 0; i < array.Length; ++i)
{
array[i] = i;
}
double sum1 = array.Aggregate((total, current) => total + Math.Sqrt(Math.Abs(Math.Sin(current))));
Console.WriteLine("Linq aggregate = " + sum1);
IParallelEnumerable<double> parray = array.AsParallel<double>();
double sum2 = parray.Aggregate((total, current) => total + Math.Sqrt(Math.Abs(Math.Sin(current))));
Console.WriteLine("Plinq aggregate = " + sum2);
}
}
}