2016-06-29 5 views
1

PowerShell에서 Runspace 풀을 사용하여 백그라운드 작업을 수행하려고했습니다. 하지만 메인 스레드에서 WPF Window Variable에 액세스해야합니다. Runspace 풀을 사용하는 SessionStateProxy 변수

정상 실행 영역

는 옵션이 있습니다

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

을하지만 나는 RunspacePool과 같은 방법을해야합니까?

답변

2

runspacepool에 변수를 추가하는 것은 좀 더 복잡하지만 여전히 수행 할 수 있습니다. InitialSessionState 개체를 만든 다음 runspacepool에 추가 할 변수가 들어있는 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)