Powershell形式滞后

时间:2015-05-06 12:32:13

标签: forms powershell

我正在为我的工作制作报告工具。该工具有4个表,每隔几分钟刷新一次。刷新时,它会创建一个后台作业来查询下一次刷新的新信息。在手动刷新期间,我想使表格变灰,并让它在恢复功能之前等待后台作业完成。一切都很好。 (以下代码)

让我完全困惑和困惑的是灰色过程似乎滞后了。当它自己运行时它瞬间完成。然而随着睡眠线后来它似乎做了1个表,然后睡了一秒..然后再多吃2个..然后睡一秒钟。并且它与睡眠间隔一致。这意味着如果我将睡眠间隔设置为3秒,我的表格的分阶段灰色会错开3秒而不是1秒。

所以我正在寻找一个更好的解决方案,也不会想知道PowerShell如何在完成前一个代码之前转移到下一行代码。

$myWindow.add_KeyDown({
    if ($_.keycode -eq "F5") {
        for ($i=0; $i-lt 4; $i++ ) {
            foreach ($row in $myDataGrid[$i].Rows) {
                $row.DefaultCellStyle.BackColor = "GRAY" 
                $row.DefaultCellStyle.ForeColor = "BLACK" 
            }
        } 
        while ((get-job -Name "ticker").state -ne "Completed") {sleep 1}
        $out = Receive-Job -name "ticker"
        Get-Job -name "ticker" | Remove-Job
        refresh $($out) #updates the tables
        Start-Job -Name "ticker" -ScriptBlock $query -ArgumentList $args
    }
})

0 个答案:

没有答案