Ho uno script PowerShell per eseguire un'elaborazione batch su un gruppo di immagini e mi piacerebbe eseguire un'elaborazione parallela. Powershell sembra avere alcune opzioni di elaborazione in background come start-job, wait-job, ecc., Ma l'unica buona risorsa che ho trovato per fare lavoro parallelo è stata la scrittura del testo di uno script e l'esecuzione di quelli ( PowerShell Multithreading )
Idealmente, vorrei qualcosa di simile a parallel foreach in .net 4.
Qualcosa di abbastanza insignificante come:
foreach-parallel -threads 4 ($file in (Get-ChildItem $dir))
{
.. Do Work
}
Forse farei meglio a scendere in c # ...
(get-job $a).jobstateinfo.state;
receive-job (wait-job ($a = start-job { "heyo!" })); remove-job $a
o$a = start-job { "heyo!" }; wait-job $a; receive-job $a; remove-job $a
Nota anche che se chiamireceive-job
prima che il lavoro sia finito, potresti non ottenere nulla.