J'ai un script PowerShell pour effectuer un traitement par lots sur un tas d'images et j'aimerais faire un traitement parallèle. Powershell semble avoir des 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 en 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 à foreach parallèle dans .net 4.
Quelque chose d'assez insensé comme:
foreach-parallel -threads 4 ($file in (Get-ChildItem $dir))
{
.. Do Work
}
Peut-être que je ferais mieux de passer à c # ...
(get-job $a).jobstateinfo.state;
receive-job (wait-job ($a = start-job { "heyo!" })); remove-job $a
ou$a = start-job { "heyo!" }; wait-job $a; receive-job $a; remove-job $a
Notez également que si vous appelezreceive-job
avant la fin du travail, vous risquez de ne rien obtenir du tout.