并行搜索元组列表

时间:2012-03-28 14:07:20

标签: c# parallel-processing tuples

我有一个以元组形式的整数元组(1,000)的大型列表。如何进行List.Find和并行搜索列表?我正在搜索元组的两个部分(即左右元素)。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

将列表逻辑拆分为块。为每个线程提供一个子列表进行搜索。如果您使用数组,则更容易(从示例角度来看),因为您可以指定允许每个线程搜索的数组中的边界。

例如,如果您有3个线程和一个长度为n的数组。你可以让第一个线程在0-n / 3的元素中搜索;第二个线程从n / 3搜索到2 * n / 3;第三个线程从2 * n / 3搜索到n。

警告:拥有3个搜索线程并不意味着搜索并行发生。您的计算机上可能没有3个内核/ CPU。

答案 1 :(得分:0)

如果list是您的收藏集的名称,x是您要搜索的值,则应该这样做(假设您使用的是.net 4.0):

var result = list.AsParallel().Where(tuple => tuple.Item1 == x).ToList();