В конечном итоге, режима -STA должно быть достаточно, если вы используете Powershell 2.0. Причина этого в том, что в режиме STA пространство выполнения по умолчанию повторно использует один поток для всех интерактивных команд (и сценариев тоже). Вполне возможно, что версия powershell, на которую смотрел Зак в феврале, вела себя иначе, чем нынешний RC / RTM PowerShell 2.0. Возможно, он использовал UseNewThread вместо текущего значения по умолчанию, ReUseThread:
PS> [System.Management.Automation.Runspaces.Runspace]::DefaultRunspace
Events : System.Management.Automation.PSLocalEventManager
ThreadOptions : ReuseThread
RunspaceConfiguration : System.Management.Automation.Runspaces.RunspaceConfigForSingleShell
InitialSessionState :
Version : 2.0
RunspaceStateInfo : Opened
RunspaceAvailability : Busy
ConnectionInfo :
ApartmentState : STA
InstanceId : 8d3bfae1-8b64-433d-9ab9-ce640b15f84f
SessionStateProxy : System.Management.Automation.Runspaces.SessionStateProxy
Debugger : System.Management.Automation.Debugger
Короче говоря, ты в порядке здесь. Продвинутый метод, о котором он говорил, скорее всего, заключался в том, как ускорить новое пространство выполнения, используя ReUseThread, который теперь избыточен, поскольку это опция потока по умолчанию для -STA. Однако вы можете использовать эту технику для запуска одного потока в режиме MTA; -)
-Oisin
Microsoft PowerShell MVP