首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Parallel.For中断

Parallel.For中断
EN

Stack Overflow用户
提问于 2010-08-22 04:00:40
回答 2查看 796关注 0票数 7

假设您有一个包含1000个随机整数的数组,例如,您需要循环遍历它以找到数字68。

在四核处理器上使用新的Parallel.For将显著提高速度,使每个内核只能工作250个数组项。

问题是:当满足以下条件时,是否可以中断Parallel.For循环?

代码语言:javascript
复制
if (integerArray[i] == 68)

   break;

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-22 04:06:32

如果您想要在当前执行的迭代完成后停止(但将执行当前迭代之前的迭代-即,索引较低的迭代= i)

代码语言:javascript
复制
Parallel.For(0, 100, (i, s) =>
    {
        s.Break();
    });

或者如果你想在当前之后停止,在此之前的交互(根据index = i)也应该停止

代码语言:javascript
复制
Parallel.For(0, 100, (i, s) =>
    {
        s.Stop();
    });

但在这两种情况下,如果迭代可能需要一段时间,最好检查工作是否应该中止

代码语言:javascript
复制
s.ShouldExitCurrentIteration

点击此处了解更多信息Parallel.For Method (Int32, Int32, Action(Int32, ParallelLoopState))

票数 9
EN

Stack Overflow用户

发布于 2010-08-22 04:05:48

在我看来,您应该查看PLINQ (并行LINQ)来执行并行查询,而不是并行查询。

http://msdn.microsoft.com/en-us/library/dd460688.aspx

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3538721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档