powershell - Powershell Invoke-WebRequest 在下载文件时冻结 UI
问题描述
我有一个简单的软件更新程序 PowerShell 脚本,它工作得很好,最近我决定在它上面添加一些 GUI,这样我就可以在下载文件时隐藏终端窗口,同时让用户知道它正在工作。
最终我想添加下载进度条以提供更多信息,但现在我的问题是当使用Invoke-WebRequest -Uri $printer_link -OutFile $save_path -PassThru
我的 UI 时会冻结,直到文件下载( 4-5MB )。我试着把它放在一个 JOB 里面
我的表格是:
$form = New-Object System.Windows.Forms.Form
$form.Text = "POS Updater"
$form.Size = New-Object System.Drawing.Size(400,160)
$form.FormBorderStyle = "FixedDialog"
$form.TopMost = $true
$form.MaximizeBox = $false
$form.MinimizeBox = $false
$form.StartPosition="CenterScreen"
$form.Add_Shown({$form.Activate()})
$form.Add_Shown({check_connection})
[void] $form.ShowDialog()
和我的 check_connection 功能:
function check_connection{
$s = iwr "google.com" | select statuscode, statusdescription
$code = $s.statuscode
if($code -eq 200){
Start-Job -Name "sx" -ScriptBlock{
$download = Invoke-WebRequest -Uri $printer_link -OutFile $save_path -PassThru
}
while (Get-Job | Where-Object {$_.HasMoreData}) {
Get-Job | Receive-Job
[System.Windows.Forms.Application]::DoEvents()
Start-Sleep -Seconds 1
}
}
}
但是,它仍然冻结。请问我该如何解决这个问题。。
解决方案
推荐阅读
- android - 如何使用 react-native 实现 Word-Link 游戏中使用的滑动手势
- ios - TableView 部分索引不显示
- python - 使用 python 进行 Mongo 查询
- amazon-web-services - 如何使用 Cost explorer API 在 AWS 中查找未标记资源的成本
- sql-server - 即使为其他查询结果复制了参数,查询也没有结果
- ios - 不同颜色的标题区域
- image - 对使用图像数据生成器设置 steps_per_epoch 感到困惑
- java - Java 命令行计算器帮助。添加数字序列
- node.js - 如何解决这个“SyntaxError: Invalid regular expression: /^function authenticate(req, res, next)”?
- javascript - DataTable 没有正确过滤新插入的数据