Multithreading 调用线程无法访问此对象,因为其他线程拥有它
我正在尝试从PowerShell检索打印队列列表,如下所示。 但是我越来越Multithreading 调用线程无法访问此对象,因为其他线程拥有它,multithreading,powershell,printing,Multithreading,Powershell,Printing,我正在尝试从PowerShell检索打印队列列表,如下所示。 但是我越来越 调用线程无法访问此对象,因为另一个线程拥有它 这是因为PowerShell无法支持多线程吗? 有没有办法解决这个问题 据我所知,您必须使用-STA(单线程装置)参数启动PowerShell才能使代码正常工作: PowerShell -STA Add-Type -AssemblyName "system.Printing" $f = @([system.Printing.EnumeratedPrintQueueTypes
调用线程无法访问此对象,因为另一个线程拥有它
这是因为PowerShell无法支持多线程吗?
有没有办法解决这个问题
据我所知,您必须使用-STA(单线程装置)参数启动PowerShell才能使代码正常工作:
PowerShell -STA
Add-Type -AssemblyName "system.Printing"
$f = @([system.Printing.EnumeratedPrintQueueTypes]::local, [system.Printing.EnumeratedPrintQueueTypes]::shared)
$ps = New-Object system.Printing.localprintserver
$pq = $ps.GetPrintQueues($f)
请下次把你的代码作为文本,而不是屏幕副本,这样其他人就可以不用输入你的代码就可以进行测试了。