Powershell:冻结GUI

时间:2012-05-29 06:57:24

标签: multithreading function user-interface powershell

快一点。我有一个问题,我创建了一个简单的工具,它使用一个小框来获取CPU使用一段时间,看起来显示正在使用的CPU的百分比(我已经删除了以下代码的GUI) )。

function loop
{
$get = read-host
for($start = 0; $start -le 100;$start++)
{
cls
$pro_percentage = Get-WmiObject win32_processor -computer $get -property Loadpercentage | select loadpercentage
$percentage = "Processor usage is: " + $pro_percentage.loadpercentage + "%"
$percentage
}
}
loop

我已经创建了GUI的其他一些内容,但我注意到了一个主要问题,这适用于我创建的其他GUI应用程序。每当按下“go”按钮从对话框启动脚本时,GUI就会冻结。我在GUI中创建的菜单栏冻结,无法按下其他按钮。

我应该在不同的线程中运行每个函数吗?那样的东西?

由于

1 个答案:

答案 0 :(得分:5)

尝试添加:

[System.Windows.Forms.Application]::DoEvents() 
你的循环中的

Quick and dirty, however