小编fab*_*fab的帖子

如果调用是在一个单独的方法中,为什么Parallel.Invoke要快得多?

我实施了3次QuickSort算法并测量了5000万随机数的排序时间:

  1. 顺序(花了~14秒)

  2. Parallel.Invoke()相同的方法作为排序算法(使用了〜12秒)

  3. Parallel.Invoke()单独的方法(使用了约7秒)的

所以我的问题是:Parallel.Invoke()如果呼叫是在一个单独的方法中,为什么会快得多?在我的计算机上,3.示例的速度是2的两倍多.

2. Parallel.Invoke()相同的方法作为排序算法

public class ParallelQuickSort
{

    private const int Threshold = 100;

    public static void Sort(int[] array)
    {
        if (array == null || array.Length == 0)
        {
            new ArgumentException("number array must be at least of length 1");
        }
        QuickSort(array, 0, array.Length - 1);
    }

    private static void QuickSort(int[] array, int left, int right)
    {
        var i = left;
        var j = right; …
Run Code Online (Sandbox Code Playgroud)

c# parallel-processing quicksort .net-core

15
推荐指数
2
解决办法
275
查看次数

标签 统计

.net-core ×1

c# ×1

parallel-processing ×1

quicksort ×1