Кто-нибудь знает, почему Invoke-Parallel не является многопоточным? Когда я запускаю этот цикл, он не запускает следующий блок сценариев, пока не завершится предыдущий.
Примечание. Я также пробовал это на PoshRSJob .
Я выполняюфайл jar Java для каждого найденного файла. Если вы посмотрите здесь , они используют команду Start-Process и ждут rar.exe.
. .\Invoke-Parallel.ps1
$ScriptBlock = {
start-Process -file java -ArgumentList @('-jar',"a:\conversion.jar",$_.FullName,"$($_.FullName).tmp") -Wait
}
ForEach ($file in (GCI -Path b:\*)) {
Invoke-Parallel -InputObject $file -ScriptBlock $ScriptBlock -Throttle 5
}
* Обратите внимание, что это всего лишь простой пример, мой оригинальный сценарий более сложныйно я сузил это до этой записи, которая заставляет многопоточность не многопоточность.