Skip to content

Instantly share code, notes, and snippets.

@countzero
Last active July 5, 2019 20:28
Show Gist options
  • Select an option

  • Save countzero/ef6c801456146664cf9da120cfec56cd to your computer and use it in GitHub Desktop.

Select an option

Save countzero/ef6c801456146664cf9da120cfec56cd to your computer and use it in GitHub Desktop.
Execute PowerShell jobs in parallel.
for ($index=1; $index -le 23; $index++) {
$scriptBlock = {
Param (
[string] [Parameter(Mandatory=$true)] $id
)
$durationInMilliseconds = $(Get-Random -Minimum 500 -Maximum 1000)
Start-Sleep -Milliseconds $durationInMilliseconds
Write-Host "Job #${id} completed in ${durationInMilliseconds} ms."
}
Write-Host "Starting Job #${index}..."
Start-Job $scriptBlock -Name "Job #${index}" -ArgumentList $index | Out-Null
}
Get-Job | Receive-job -AutoRemoveJob -Wait
@countzero

countzero commented Jul 5, 2019

Copy link
Copy Markdown
Author

This will output the job results after all jobs have been completed in the order in which they have finished:

Starting Job #1...
Starting Job #2...
Starting Job #3...
Starting Job #4...
Starting Job #5...
Starting Job #6...
Starting Job #7...
Starting Job #8...
Starting Job #9...
Starting Job #10...
Starting Job #11...
Starting Job #12...
Starting Job #13...
Starting Job #14...
Starting Job #15...
Starting Job #16...
Starting Job #17...
Starting Job #18...
Starting Job #19...
Starting Job #20...
Starting Job #21...
Starting Job #22...
Starting Job #23...
Job #1 completed in 862 ms.
Job #2 completed in 825 ms.
Job #3 completed in 976 ms.
Job #4 completed in 825 ms.
Job #5 completed in 864 ms.
Job #6 completed in 649 ms.
Job #7 completed in 870 ms.
Job #8 completed in 951 ms.
Job #9 completed in 659 ms.
Job #10 completed in 900 ms.
Job #11 completed in 617 ms.
Job #12 completed in 560 ms.
Job #13 completed in 830 ms.
Job #14 completed in 547 ms.
Job #15 completed in 620 ms.
Job #16 completed in 502 ms.
Job #17 completed in 527 ms.
Job #18 completed in 795 ms.
Job #20 completed in 563 ms.
Job #19 completed in 944 ms.
Job #23 completed in 609 ms.
Job #21 completed in 945 ms.
Job #22 completed in 926 ms.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment