Public/Set-WUIRunspacePoolOption.ps1
<#
.SYNOPSIS Sets options for the runspace pool that processes event callbacks whose RunspaceMode is RunspacePoolAsyncUI. .DESCRIPTION Sets options for the runspace pool that processes event callbacks whose RunspaceMode is RunspacePoolAsyncUI. It's better to call this function at the beginning of a script as it recreates the runspace pool. .PARAMETER RunspaceCount The number of runspaces in the Runspace pool. The default is 2. .PARAMETER InitializationScript The ScriptBlock that is executed at the start of the runspace. This is typically used to initialize variables and functions in the runspace pool. There's no need to manually load WinUIShell module as it is automatically loaded at runspace initialization. .PARAMETER InitializationScriptArgumentList The argument list that is passed to the InitializationScript. .INPUTS None. .OUTPUTS None. .EXAMPLE Set-WUIRunspacePoolOption -RunspaceCount 3 -InitializationScript { $globalVar = 'Hello' function Hello { Write-Host $globalVar } } .EXAMPLE Set-WUIRunspacePoolOption -RunspaceCount 4 #> function Set-WUIRunspacePoolOption { [CmdletBinding()] param ( [Parameter(ValueFromPipelineByPropertyName = $true)] [UInt32]$RunspaceCount, [Parameter(ValueFromPipelineByPropertyName = $true)] [ScriptBlock]$InitializationScript, [Parameter(ValueFromPipelineByPropertyName = $true)] [Object[]]$InitializationScriptArgumentList ) process { if ($PSBoundParameters.ContainsKey('RunspaceCount')) { $threadCount = $RunspaceCount } else { $threadCount = $null } [WinUIShell.Engine]::Get().SetCommandThreadPoolOption($threadCount, $InitializationScript, $InitializationScriptArgumentList) } } |