用多线程找到最小值,

时间:2014-02-17 03:26:04

标签: c#

问:我想在数组中找到最小值到目前为止我用for循环编写了代码,但是我想用线程概念来做这个,那么如何用多线程编写以下代码呢?

  static int findMind(int[] arry)
    {
        int min = int.MaxValue;

        //iterating through array
        for (int x = 0; x < arry.Length; x++)
        {
            if (min > arry[x])
            {
                min = arry[x];
            }
        }

        return min;
    }

2 个答案:

答案 0 :(得分:4)

您可以按如下方式使用Parallel Linq(PLINQ):

    static int findMind(int[] arry)
    {
        return arry.AsParallel().Min();
    }

答案 1 :(得分:1)

如果您不想使用PLinq。

您可以将阵列拆分为多个(可能是核心数)较小的阵列,并在不同的线程中找到该阵列中的min。

然后你应该从这个任务中收集结果并在结果数组中找到min。