PowerShell中的 STA和MTA 3


如何准备在PowerShell中创建GUI界面,你可能须要稍微了解什么是STA(Single-Threaded Apartment)和 MTA (Multi-Threaded Apartment)。MSDN的官位解释如下:

STA:http://msdn.microsoft.com/en-us/library/ms680112(v=vs.85).aspx

MTA:http://msdn.microsoft.com/en-us/library/ms693421(v=vs.85).aspx

在PowerShell 2.0 中,控制台默认为MTA:

PS C:\> $Host.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
2      0      -1     -1


PS C:\> [threading.thread]::CurrentThread.GetApartmentState()
MTA

在PowerShell 3.0 中,控制台默认为STA:

PS D:\> $Host.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
3      0      -1     -1


PS D:\> [threading.thread]::CurrentThread.GetApartmentState()
STA

例如你在PowerShell中定义了一个windows form组件,然后在子进程中尝试修改UI上面的值,可能就会遇到进程操作的异常。最好,能在脚本中提前进行判断。

原文链接:http://depsharee.blogspot.com/2011/06/powershell-sta-and-mta.html

本文链接: https://www.pstips.net/powershell-sta-and-mta.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

3 条评论 “PowerShell中的 STA和MTA

评论已经关闭.