about_Foreach-Parallel
RÖVID LEÍRÁS
ForEach -Parallel
A Windows PowerShell-munkafolyamat nyelvi szerkezetét ismerteti.
HOSSZÚ LEÍRÁS
A kulcsszó párhuzamos paramétere ForEach
egy ForEach
szkriptblokkban futtatja a parancsokat egy adott gyűjtemény minden eleméhez egyszer.
A gyűjtemény elemei, például egy lemezgyűjtemény lemezei párhuzamosan lesznek feldolgozva. A szkriptblokk parancsai egymás után futnak a gyűjtemény minden elemén.
ForEach -Parallel
csak Windows PowerShell-munkafolyamatokban érvényes.
SZINTAXIS
ForEach -Parallel ($<item> in $<collection>)
{
[<Activity1>]
[<Activity2>]
...
}
RÉSZLETES LEÍRÁS
A Windows PowerShell ForEach utasításához hasonlóan a gyűjteményt $<collection>
tartalmazó változót az ForEach -Parallel
utasítás előtt kell definiálni, de az aktuális elemet $<item>
képviselő változót az ForEach -Parallel
utasítás határozza meg.
A ForEach -Parallel
szerkezet eltér a ForEach
kulcsszótól és a Párhuzamos paramétertől. A ForEach
kulcsszó sorrendben dolgozza fel a gyűjtemény elemeit. A Párhuzamos paraméter parancsokat futtat párhuzamosan egy szkriptblokkban. A párhuzamos szkriptblokkokat egy szkriptblokkba ForEach -Parallel
is belefoglalhatja.
A munkafolyamat célszámítógépei, például a PSComputerName munkafolyamat közös paramétere által megadott célszámítógépek feldolgozása mindig párhuzamosan történik.
Ehhez nem kell megadnia a ForEach -Parallel
kulcsszót.
PÉLDÁK
Az alábbi munkafolyamat egy utasítást ForEach -Parallel
tartalmaz, amely feldolgozza a tevékenység által lekért lemezeket Get-Disk
. A szkriptblokk parancsai ForEach -Parallel
egymás után futnak, de párhuzamosan futnak a lemezeken. Előfordulhat, hogy a lemezek feldolgozása egyidejűleg és bármilyen sorrendben történik.
workflow Test-Workflow
{
$Disks = Get-Disk
# The disks are processed in parallel.
ForEach -Parallel ($Disk in $Disks)
{
# The commands run sequentially on each disk.
$DiskPath = $Disk.Path
$Disk | Initialize-Disk
Set-Disk -Path $DiskPath
}
}
A munkafolyamat ezen verziójában a parancsok és Get-Service
a Get-Process
parancsok párhuzamosan futnak. A munkafolyamat-függvény továbbra is azt a ForEach -Parallel
ciklust használja, amelyben a parancsok egymás után futnak, de párhuzamosan futnak a lemezeken. A párhuzamos parancsok és a ForEach -Parallel
hurok párhuzamosan futnak.
workflow Test-Workflow
{
#Run commands in parallel.
Parallel
{
Get-Process
Get-Service
}
$Disks = Get-Disk
# The disks are processed in parallel.
ForEach -Parallel ($Disk in $Disks)
{
# The commands run in parallel on each disk.
Parallel
{
Initialize-Disk
InlineScript {.\Get-DiskInventory}
}
}
}
Kapcsolódó információk
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: