about_Foreach-Parallel
KıSA AÇıKLAMA
ForEach -Parallel
Windows PowerShell İş Akışı'ndaki dil yapısını açıklar.
UZUN AÇıKLAMA
Anahtar sözcüğün ForEach
Parallel parametresi, komutları belirtilen koleksiyondaki her öğe için bir ForEach
betik bloğunda bir kez çalıştırır.
Bir disk koleksiyonundaki disk gibi koleksiyondaki öğeler paralel olarak işlenir. Betik bloğundaki komutlar koleksiyondaki her öğede sırayla çalışır.
ForEach -Parallel
yalnızca Windows PowerShell İş Akışında geçerlidir.
SÖZ DİZİMİ
ForEach -Parallel ($<item> in $<collection>)
{
[<Activity1>]
[<Activity2>]
...
}
AYRINTILI AÇIKLAMA
Windows PowerShell'deki ForEach deyiminde olduğu gibi, koleksiyon $<collection>
içeren değişkenin deyiminden ForEach -Parallel
önce tanımlanması gerekir, ancak geçerli öğeyi $<item>
temsil eden değişken deyiminde ForEach -Parallel
tanımlanır.
YapısıForEach -Parallel
, anahtar sözcüğünden ForEach
ve Parallel parametresinden farklıdır. ForEach
anahtar sözcüğü koleksiyondaki öğeleri sırayla işler. Parallel parametresi komutları paralel olarak bir betik bloğunda çalıştırır. Paralel betik bloğunu bir betik bloğuna ForEach -Parallel
kapatabilirsiniz.
PsComputerName iş akışı ortak parametresi tarafından belirtilenler gibi bir iş akışındaki hedef bilgisayarlar her zaman paralel olarak işlenir.
Bu amaç için anahtar sözcüğü belirtmeniz ForEach -Parallel
gerekmez.
ÖRNEKLER
Aşağıdaki iş akışı, etkinliğin aldığı diskleri Get-Disk
işleyen bir ForEach -Parallel
deyim içerir. Betik bloğundaki ForEach -Parallel
komutlar sıralı olarak çalışır, ancak disklerde paralel olarak çalışır. Diskler eşzamanlı olarak ve herhangi bir sırada işlenebilir.
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
}
}
İş akışının Get-Process
bu sürümünde ve Get-Service
komutları paralel olarak çalıştırılır. İş akışı işlevi, komutların sıralı olarak çalıştırıldığı ama disklerde paralel olarak çalıştırıldığı döngüye devam ForEach -Parallel
eder. Paralel komutlar ve ForEach -Parallel
döngü eşzamanlı olarak çalışır.
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}
}
}
}
Ayrıca bkz:
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin