abe*_*nci 7 .net c# parallel-processing parallel-extensions
假设你有一个1000个随机整数的数组,你需要循环它以找到数字68,例如.
在四核CPU上使用新的Parallel.For可以大大提高速度,使每个核心只能工作250个数组项.
问题是:当满足以下条件时,是否可以中断Parallel.For循环?
if (integerArray[i] == 68)
break;
Run Code Online (Sandbox Code Playgroud)
谢谢.
如果要在当前执行迭代完成后停止(但是在执行当前WILL之前的迭代 - 即,具有较低索引的迭代= i)
Parallel.For(0, 100, (i, s) =>
{
s.Break();
});
Run Code Online (Sandbox Code Playgroud)
或者如果你想在此前的当前和交互之后停止(就index = i而言)也应该停止
Parallel.For(0, 100, (i, s) =>
{
s.Stop();
});
Run Code Online (Sandbox Code Playgroud)
但在两种情况下,如果迭代可能需要一段时间,检查工作是否应该中止是一个好习惯
s.ShouldExitCurrentIteration
Run Code Online (Sandbox Code Playgroud)
在此处阅读更多内容Parallel.For方法(Int32,Int32,Action(Int32,ParallelLoopState))
| 归档时间: |
|
| 查看次数: |
778 次 |
| 最近记录: |