Проблема с Interlocked

211
17 мая 2018, 11:00

Изначально нужно было написать поочередный XOR элементов массива. При реализации через Interlocked.Exchange (нужно именно с помощью него) выдает отличительные результаты от Aggregate. Не могу никак понять почему Interlocked выдает один результат, когда реализации в Aggregate и однопоточном XOR выдают другой(одинаковый).

XOR Interlocked

    private static int ParallelXor(int[] data)
    {
        int result = data.First();
        Parallel.For(1, data.Length, (current) =>
        {
            Interlocked.Exchange(ref result, (result ^ data[current]));
        });
        return result;
    }

XOR Aggregate:

private static int ParallelXorAggregate(int[] data)
     => data.AsParallel().Aggregate((current, result) => current ^ result);

XOR однопоточный:

    static int TestXor(int[] list)
    {
        int result = list.First();
        for(int i = 1; i < list.Count(); i ++)
            result = result ^ list[i];
        return result;            
    }
READ ALSO
Как сделать привязку кнопки- Enter на кнопку Button в WPF C#

Как сделать привязку кнопки- Enter на кнопку Button в WPF C#

Хочу сделать так, чтобы при нажатии кнопки на клавиатуре, срабатывала кнопка из WPFВроде так можно было делать с помощью Label элемента управления

291
Как получить результат компиляции?

Как получить результат компиляции?

Делаю ide для языка C# на WinFormsПри запуске отправляю файлу csc

181
Переадресация при 404 asp mvc

Переадресация при 404 asp mvc

Как сделать, что бы при неверном url происходила переадресация на главную страницу ? Я пытаюсь реализовать это добавлением в webconfig :

237