0

我创建了一个打包为 .exe 的 powershell gui 应用程序。该脚本调用其他脚本,并在调用的脚本启动和完成时通过只读富文本框通知用户。

问题是它只会显示指示第一个脚本开始的消息,然后它不会显示任何内容,直到所有脚本完成执行。

这是我的代码:

foreach ($item in $checkedlistbox1.CheckedItems) {
        $richtextbox1.AppendText("Installing " + [IO.Path]::GetFileNameWithoutExtension($item) + "...")
        $richtextbox1.Update()
        $path = $scriptdir+ "\" + $item + ".exe"
        [System.Diagnostics.Process]::Start($path)
        $Process = (Get-Process | `
                        Where-Object { $_.ProcessName -ieq [IO.Path]::GetFileNameWithoutExtension($item) })
        $Process.WaitForExit() 
        $richtextbox1.AppendText("Done."+[char]13+[char]10)
        $richtextbox1.Update()
    }

我想知道这里可能出了什么问题:(

4

1 回答 1

1

找到了一个肮脏的方法来解决这个问题:

[System.Windows.Forms.Application]::DoEvents()

就在附加富文本框之后。

于 2012-09-24T11:08:16.133 回答