$ScriptBlock = { param($seconds) Write-Host "I'm about to sleep for $seconds seconds" Start-Sleep -Seconds $seconds Write-Host "I slept for $seconds seconds" return $seconds } $JobInputs = @(128,1,64,32,16,2,4,8) Invoke-Parallel -Script $ScriptBlock -Objects $JobInputs -ThreadPerObject Invoke-JobRunner -ScriptBlock $ScriptBlock -JobInputs $JobInputs $ScriptBlock = { param($seconds) Write-Host "I'm about to sleep for $seconds seconds" Start-Sleep -Seconds $seconds Write-Host "I slept for $seconds seconds" return $seconds } $JobInputs = @(1,16,2,4,8) Invoke-Parallel -Script $ScriptBlock -Objects $JobInputs -ThreadPerObject $ScriptBlock = { param($seconds) Start-Sleep -Seconds $seconds Write-Host $PID return $seconds } $JobInputs = @(1,1,1,1,2,2,2,2,4,4,4,4,4) Invoke-JobRunner -ScriptBlock $ScriptBlock -JobInputs $JobInputs -UseBatchProcessing -ReturnObjects