Private/Runtime/Invoke-ElmDriverLoop.ps1
|
function Invoke-ElmDriverLoop { [CmdletBinding()] param( [Parameter(Mandatory)] [scriptblock]$ScriptBlock, [Parameter()] [object[]]$Arguments = @() ) $runspace = [System.Management.Automation.Runspaces.RunspaceFactory]::CreateRunspace() $runspace.Open() $ps = [System.Management.Automation.PowerShell]::Create() $ps.Runspace = $runspace [void]$ps.AddScript($ScriptBlock) foreach ($arg in $Arguments) { [void]$ps.AddArgument($arg) } $asyncResult = $ps.BeginInvoke() return @{ Runspace = $runspace PowerShell = $ps AsyncResult = $asyncResult } } |