Powershell后台工作者

发布于 2024-09-27 19:01:38 字数 234 浏览 1 评论 0原文

谁能给我一个如何在Powershell中使用BackgroundWorker的例子?

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

这在 Powershell 中可能吗?我所做的所有谷歌搜索都指向 c# 或 VB.Net。

干杯,

Can anyone give me an example of how to use BackgroundWorker in Powershell?

I want to write something so when a new tab is selected in my Powershell GUI app, it will switch to the tab with a "please wait" message displayed, then run some checks in a BackgroundWorker thread, and then update.

Is this possible in Powershell? All the Googling I've done points to c# or VB.Net.

Cheers,

Ben

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

带刺的爱情 2024-10-04 19:01:38

如果后台线程要使用 PowerShell 管道来完成其工作,那么我将避免使用 BackgroundWorker。它不会与 PowerShell 运行空间绑定。尝试使用 Register-ObjectEvent 进行异步处理,例如:

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

If the background thread is going to use a PowerShell pipeline to do its work, then I would avoid using BackgroundWorker. It wouldn't be tied to a PowerShell Runspace. Try doing your async processing using Register-ObjectEvent e.g.:

Register-ObjectEvent $tabItem Loaded -Action { <do bg work here> }
热情消退 2024-10-04 19:01:38

您还可以使用 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

You could also use Start-Process:

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

Or you could use a one-liner:

Start-Process -FilePath "c:\script.ps1" -ArgumentList "/someOrNoArgsHere /moreArgs" -Wait -Passthru -WindowStyle Hidden
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文