![](/img/trans.png)
[英]Multithreaded Powershell GUI Application never displays when called from CMD.exe
[英]Powershell multithreading not working on cmd.exe
我需要使用多线程在powershell中运行一些代码,我已经测试了一个简单的代码段,并且在powershell控制台上运行良好。 但是,当我尝试在cmd.exe上运行时,代码没有执行,并且没有任何错误,想知道这是怎么回事? 如果有人帮助您。
示例代码如下
$throttleLimit = 10
$iss = [system.management.automation.runspaces.initialsessionstate]::CreateDefault()
$Pool = [runspacefactory]::CreateRunspacePool(1, $throttleLimit, $iss, $Host)
$Pool.Open()
$ScriptBlock = {
param($id)
Start-Sleep -Seconds 2
Write-Host "Done processing ID $id"
[System.Console]::WriteLine("Done processing ID $id")
}
for ($x = 1; $x -le 40; $x++) {
$powershell = [powershell]::Create().AddScript($ScriptBlock).AddArgument($x)
$powershell.RunspacePool = $Pool
$handle = $powershell.BeginInvoke()
}
我的批处理文件代码如下
powershell -Command .\multiT.ps1 2>&1
在ISE中,脚本会在线程输出开始显示之前完成。 我在代码的末尾添加了start-sleep -sec 10
,现在我从cmd获得输出。 由于某种原因,输出却翻了一番(例如,每个线程有2行)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.