2010-10-19 95 views
1

任何人都可以给我一个如何在Powershell中使用BackgroundWorker的例子吗?Powershell Backgroundworker

我想写一些东西,当我的Powershell GUI应用程序中选择新选项卡时,它将切换到显示“请稍候”消息的选项卡,然后在BackgroundWorker线程中运行一些检查,然后进行更新。

这是可能的Powershell?所有谷歌搜索我已经做了点C#或VB.Net。

干杯,

回答

1

如果后台线程会使用PowerShell管道来完成工作,那么我会尽量避免使用BackgroundWorker的。它不会绑定到PowerShell运行空间。尝试做使用Register-ObjectEvent例如为:

Register-ObjectEvent $tabItem Loaded -Action { <do bg work here> } 
0

您的异步处理您还可以使用Start-Process

$scriptPath = "c:\script.ps1" 
$allArgs = "/someOrNoArgsHere /moreArgs" 
$backgroundProcess = Start-Process -FilePath $scriptPath -ArgumentList $allArgs -Wait -Passthru -WindowStyle Hidden 
$backgroundProcess.WaitForExit() 
$backgroundProcess.ExitCode 

或者你可以使用一个班轮:

Start-Process -FilePath "c:\script.ps1" -ArgumentList "/someOrNoArgsHere /moreArgs" -Wait -Passthru -WindowStyle Hidden