Powershell工作流处理

Powershell工作流处理,powershell,workflow-foundation,powershell-workflow,Powershell,Workflow Foundation,Powershell Workflow,为什么这会以降序(几乎)呈现列表 Workflow FE-Parallel { foreach -parallel ($i in 0..100) { $i } } 偶尔会有一个数字出现顺序错误,但(0..100)会生成一个从0开始到100结束的列表 您不能保证在并行处理项目时处理项目的顺序 如果你问为什么每次序列都不一样,或者为什么不是从0到100依次递增,这就是原因。您可以通过以下代码更好地看到这一点: foreach-并行(0..100中的i){ 开始睡眠-毫秒(随机-最小100-

为什么这会以降序(几乎)呈现列表

Workflow FE-Parallel {
    foreach -parallel ($i in 0..100) { $i }
}

偶尔会有一个数字出现顺序错误,但(0..100)会生成一个从0开始到100结束的列表

您不能保证在并行处理项目时处理项目的顺序

如果你问为什么每次序列都不一样,或者为什么不是从0到100依次递增,这就是原因。您可以通过以下代码更好地看到这一点:

foreach-并行(0..100中的i){
开始睡眠-毫秒(随机-最小100-最大800)
$i
}
如果你问为什么它会下降(而不是看起来更“随机”),那么我认为这是一个实现细节。在内部,设置每个线程(或运行空间,或使用的任何机制)的代码需要迭代每个项目。它可能以一种可预测的方式完成,当您的操作非常简单时,它们可能以大致相同的顺序完成

为什么会反过来呢?不确定,但重要的是你不能依赖任何特定的订单