3

PowerShell で実行空間プールを使用して、バックグラウンド アクションを実行したいと考えていました。しかし、メイン スレッドから WPF ウィンドウ変数にアクセスする必要があります。

通常の実行空間には次のオプションがあります。

$runspace.SessionStateProxy.SetVariable('xamGUI',$xamGUI)

しかし、RunspacePool で同じことを行うにはどうすればよいでしょうか?

4

1 に答える 1

7

実行空間プールに変数を追加するのはもう少し複雑ですが、それでも間違いなく実行可能です。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)
于 2016-07-27T17:33:56.133 に答える