SORU
25 EKİM 2010, PAZARTESİ


Paralel Powershell Komutları çalıştırabilirsiniz?

Görüntüler bir grup üzerinde bazı toplu işlem yapmak için powershell komut dosyası var ve bazı paralel işlem yapmak istiyorum. Powershell gibi görünüyor bazı arka plan işleme seçenekleri gibi Başlat-iş, dur-iş, vb, ama sadece iyi bir kaynak bulduğum için yapıyor paralel bir işti yazılı metni bir komut dosyası ve Windows (PowerShell Multithreading)

İdeal olarak, benzer bir şey dosyalarda grup paralel etmek istiyorum .net 4.

Güzel bir şey sorunsuz gibi

foreach-parallel -threads 4 ($file in (Get-ChildItem $dir))
{
   .. Do Work
}

Belki de sadece c için aşağı bırakarak daha iyi olurum#...

CEVAP
21 Temmuz 2011, PERŞEMBE


Steve Townsend yanıt @likwid belirttiği gibi pratikte teoride değil, doğru değil. Revize kodumu dikkate alıriş-bağlam bariyerbir şey varsayılan olarak bu bariyeri geçer! $_ Otomatik değişken böylece döngü içinde kullanılabilir ancak ayrı bir bağlam iş tarafından oluşturulan çünkü içinde doğrudan komut bloğu içinde kullanılabilir.

Çocuk bağlama üst bağlamdan değişkenleri geçmek, Start-Job -ArgumentList parametre göndermek ve almak için kod bloğu içinde param kullanın.

cls
# Send in two root directory names, one that exists and one that does not.
# Should then get a "True" and a "False" result out the end.
"temp", "foo" | %{

  $ScriptBlock = {
    # accept the loop variable across the job-context barrier
    param($name) 
    # Show the loop variable has made it through!
    Write-Host "[processing '$name' inside the job]"
    # Execute a command
    Test-Path "\$name"
    # Just wait for a bit...
    Start-Sleep 5
  }

  # Show the loop variable here is correct
  Write-Host "processing $_..."

  # pass the loop variable across the job-context barrier
  Start-Job $ScriptBlock -ArgumentList $_
}

# Wait for all to complete
While (Get-Job -State "Running") { Start-Sleep 2 }

# Display output from all jobs
Get-Job | Receive-Job

# Cleanup
Remove-Job *

(Ben genellikle destekleyici kanıt olarak PowerShell belgeler için bir referans sağlamak gibi ama, ne yazık ki, benim arama sonuçsuz olmuştur. Eğer bağlam ayrımı belgelenmiştir yerini biliyor musun, burada bir yorum bana haber ver!)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cyriak

    cyriak

    29 Mart 2006
  • HDstarcraft

    HDstarcraft

    12 Mayıs 2009
  • Skrillex

    Skrillex

    6 NİSAN 2010