PowerShell で実行空間プールを使用して、バックグラウンド アクションを実行したいと考えていました。しかし、メイン スレッドから WPF ウィンドウ変数にアクセスする必要があります。
通常の実行空間には次のオプションがあります。
$runspace.SessionStateProxy.SetVariable('xamGUI',$xamGUI)
しかし、RunspacePool で同じことを行うにはどうすればよいでしょうか?
PowerShell で実行空間プールを使用して、バックグラウンド アクションを実行したいと考えていました。しかし、メイン スレッドから WPF ウィンドウ変数にアクセスする必要があります。
通常の実行空間には次のオプションがあります。
$runspace.SessionStateProxy.SetVariable('xamGUI',$xamGUI)
しかし、RunspacePool で同じことを行うにはどうすればよいでしょうか?
実行空間プールに変数を追加するのはもう少し複雑ですが、それでも間違いなく実行可能です。InitialSessionState オブジェクトを作成してから、実行空間プールに追加する変数を含む SessionStateVariableEntry オブジェクトを作成する必要があります。
[int]$Test = 123498765
#Create the sessionstate variable entry
$Variable = New-object System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList 'Test',$Test,$Null
$InitialSessionState = [System.Management.Automation.Runspaces.InitialSessionState]::CreateDefault()
#Add the variable to the sessionstate
$InitialSessionState.Variables.Add($Variable)
#Create the runspacepool using the defined sessionstate variable
$RunspacePool = [runspacefactory]::CreateRunspacePool(1,$Throttle,$InitialSessionState,$Host)