gpt4 book ai didi

powershell - 从 Powershell 并行 Foreach 循环返回值

转载 作者:行者123 更新时间:2023-12-02 01:39:58 24 4
gpt4 key购买 nike

我正在尝试在 Powershell 中编写以下情况的代码:

Create array of objects

Parallel foreach of array
{
Perform work on item of array;
Assign/return value of work;
}

Perform work on results of Parallel foreach loop

我找不到关于如何执行此操作的任何明确指南,只有我自己和其他两个同事似乎无法编译成有效解决方案的点点滴滴,即使是一个简单的示例解决方案,我们也可以将其应用于我们需要做的实际工作。

给定一个简单的任务,比如接收一个整数数组:

$inputArray = @(1..200)

然后,对于每个 int,将它与自身相乘,并以线程安全的方式返回每个乘法的值(我假设是一个数组),您将如何在 Powershell 中对此进行编码?

编辑:不要混淆任何可能的答案,但这是我们迄今为止尝试创建的内容。

$inputArray = @()
$resultArray = @()

for($i = 0; $i -le 10; $i++)
{
$inputArray += Get-Random
}

Write-Output "Workflow"

workflow ExampleWorkflow
{
param ($items)

$test = @()

foreach -Parallel ($item in $items)
{
$WORKFLOW:test += ($item * $item)
$WORKFLOW:test += ($item + $item)
$WORKFLOW:test += ($item * 3.14)
}
Write-Output ("TEST CURRENT: " + $test[0])
}

ExampleWorkflow $inputArray

Write-Output ("This is test: " + $test)

$resultArray | % { Write-Output $_ }

最佳答案

我不是 100% 清楚你的最终目标是什么,但从你发布的代码来看,你似乎试图随机化数组中的值并从随机化的值创建一个新数组。如果是这种情况,请尝试下面的方法。 $resultArray 之前没有被填充,因为它是在您的工作流程之外初始化的。

$inputArray = @()


for($i = 0; $i -le 10; $i++)
{
$inputArray += Get-Random
}

Write-Output "Workflow"

workflow ExampleWorkflow
{
param ($items)

$test = @()

foreach -Parallel ($item in $items)
{
$WORKFLOW:test += ($item * $item)
$WORKFLOW:test += ($item + $item)
$WORKFLOW:test += ($item * 3.14)

}
[array]$resultArray = @($test)
Write-Output ("TEST CURRENT: " + $test[0])
$resultArray


}




ExampleWorkflow $inputArray

关于powershell - 从 Powershell 并行 Foreach 循环返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28995532/

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