我尝试使用线程在数组中找到重复的元素(已排序)。 我的想法是将数组拆分为两个并将每一半分配给一个线程。 但是当我运行代码时,我得到了〜完全相同的时间,就像我没有使用线程一样。
我的代码:
Parallel.Invoke(()=>Search(0,elements.Length/2,elements),
()=>Search(elements.Length/2,elements.Length-1,elements));
搜索方法:
public static void Search(int start , int stop , int[] elements)
{
for (var i = start; i < stop; i++)
{
if (elements[i] == elements[i + 1])
{
Console.WriteLine("found ,time " + (DateTime.Now - _start));
break;
}
}
}
数组是100000000个元素。 此外,我不是在寻找类似LINQ的解决方案。