J'ai un script powershell pour effectuer un traitement par lots sur un groupe d'images et j'aimerais effectuer un traitement parallèle. Powershell semble avoir quelques options de traitement en arrière-plan telles que start-job, wait-job, etc, mais la seule bonne ressource que j'ai trouvée pour effectuer un travail parallèle était d'écrire le texte d'un script et de les exécuter ( PowerShell Multithreading )
Idéalement, j'aimerais quelque chose qui ressemble à la méthode foreach parallèle de .net 4.
Quelque chose d'assez banal comme :
foreach-parallel -threads 4 ($file in (Get-ChildItem $dir))
{
.. Do Work
}
Peut-être que je ferais mieux de descendre en C#...
0 votes
tl;dr :
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
Notez également que si vous appelezreceive-job
avant que le travail soit terminé, vous pourriez ne rien recevoir du tout.0 votes
Aussi
(get-job $a).jobstateinfo.state;