-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Description
Summary of the new feature / enhancement
Start-ThreadJob
(and Start-Job
for reference) currently only supports splatting -ArgumentList
with array:
This means some example code must be like this:
$JobsUsingArray = [array](
1 .. 3 | ForEach-Object -Process {
Start-ThreadJob -ScriptBlock {
[OutputType([System.String])]
Param(
[Parameter(Mandatory,Position=0)][string]$SomeParameter
)
Write-Output -InputObject $SomeParameter
} -ArgumentList ('Hello {0}' -f $_)
}
)
Receive-Job -Job $JobsUsingArray -Wait
which returns:
Hello 1
Hello 2
Hello 3
I much prefer to splat using name of the input parameters, so splatting with hashtable. I'd like this to work too:
$JobsUsingHashtable = [array](
1 .. 3 | ForEach-Object -Process {
Start-ThreadJob -ScriptBlock {
[OutputType([System.String])]
Param(
[Parameter(Mandatory)][string]$SomeParameter
)
Write-Output -InputObject $SomeParameter
} -ArgumentList @{
'SomeParameter' = [string] 'Hello {0}' -f $_
}
}
)
Receive-Job -Job $JobsUsingHashtable -Wait
which returns
System.Collections.Hashtable
System.Collections.Hashtable
System.Collections.Hashtable
Proposed technical implementation details (optional)
No response
Metadata
Metadata
Assignees
Labels
No labels