假设您有一个包含1000个随机整数的数组,例如,您需要循环遍历它以找到数字68。
在四核处理器上使用新的Parallel.For将显著提高速度,使每个内核只能工作250个数组项。
问题是:当满足以下条件时,是否可以中断Parallel.For循环?
if (integerArray[i] == 68)
break;谢谢。
发布于 2010-08-22 04:06:32
如果您想要在当前执行的迭代完成后停止(但将执行当前迭代之前的迭代-即,索引较低的迭代= i)
Parallel.For(0, 100, (i, s) =>
{
s.Break();
});或者如果你想在当前之后停止,在此之前的交互(根据index = i)也应该停止
Parallel.For(0, 100, (i, s) =>
{
s.Stop();
});但在这两种情况下,如果迭代可能需要一段时间,最好检查工作是否应该中止
s.ShouldExitCurrentIteration点击此处了解更多信息Parallel.For Method (Int32, Int32, Action(Int32, ParallelLoopState))
发布于 2010-08-22 04:05:48
在我看来,您应该查看PLINQ (并行LINQ)来执行并行查询,而不是并行查询。
http://msdn.microsoft.com/en-us/library/dd460688.aspx
https://stackoverflow.com/questions/3538721
复制相似问题