我有一个运行进度栏的表单。我需要等待32分钟,因此我在GUI窗体上使用ProgressBar来显示持续的进度以及消息。我执行“做/做”,执行1分钟的睡眠,递增并重复,直到变量递增到32(因此过去了32分钟)。但是,该表格似乎冻结并锁定了,无法移动或最小化,而运行1分钟的睡眠(基本上是32分钟)...
我尝试过Start-Job和Wait-Job,但是感觉我没有正确利用它。从脚本的角度来看,我不太了解如何有效地睡1分钟并将其作为另一项工作来处理。
处理循环和睡眠的函数:
function WaitSync {
#Removes all of the old controls
foreach ($control in $aControls2) {$MainForm.Controls.Remove($control)}
#Adds the progress bar and message
$MainForm.Controls.Add($pbSync)
$MainForm.Controls.Add($lPhrases)
#Initializes the increment variable
$z = 0
while ($z -le 33) {
$lPhrases.Text = "Updated Text..."
$pbSync.Value = $z
$pbSync.Refresh()
Start-Sleep -Seconds 60
$z++
}
#Adds the Complete Button to close the Form
$MainForm.Controls.Add($bComplete)
}
我如何做到这一点,以便在进度条处理过程中(等待32分钟)至少可以最小化表单?