gpt4 book ai didi

c# - Parallel.For中断

转载 作者:太空狗 更新时间:2023-10-29 20:08:49 24 4
gpt4 key购买 nike

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

在四核 CPU 上使用新的 Parallel.For 将显着提高速度,使每个核心仅处理 250 个数组项。

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

if (integerArray[i] == 68)

break;

谢谢。

最佳答案

如果你想在当前执行的迭代完成后停止(但当前迭代之前的迭代将被执行 - 即具有较低索引的迭代 = 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))

关于c# - Parallel.For中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3538721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com