2012-09-24 65 views
0

我有一個創建一個.exe打包的PowerShell GUI應用程序。該腳本調用其他腳本,並在被調用的腳本啓動並完成時通過只讀的richtextbox通知用戶。Powershell GUI應用程序,richtextbox不會更新內容時它應該

問題是,它只會顯示指示第一個腳本開始的消息,然後它不會顯示任何內容,直到所有腳本完成執行。

這裏是我的代碼:

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() 
    } 

我不知道什麼可能是錯在這裏:(

回答

1

嘛發現了一個骯髒的方式來解決這個問題:

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

在追加RichTextBox的後。