Parallel.For 条件语句

Parallel.For Conditional Statement

我正在 运行 在 Parallel.For 循环中进行模拟,但我需要在一段时间后停止,即使它没有 运行 所有迭代。

我需要能够在 Parallel.For 中执行以下操作。

for(int i = 0; i < 1_000_000 || DateTime.Now.Subtract(StartTime) >= MaxDuration; i++)
{
    // do the thing
}

正如 Heinzi 在评论中提到的,调用 ParallelLoopState.Break() 在检查条件后有效

Parallel.For(1, 1_000_000, (i, state) =>
{
    //do the thing

    if (DateTime.Now-startTime>=maxDuration)
    {   
        state.Break();
    }

});