我一直在尝试为我的个人 Powershell 脚本创建响应式 GUI。我想出了一个在网上被高度讨论的问题:冻结 GUI(因为 Powershell 是单线程的)。
与此问题类似,但我的案例特定于 Powershell。我成功实现了一个基于 Powershell 的解决方案,用于创建依赖于 XAML 表单的 GUI。现在,让我们考虑这段代码:
#EVENT Handler
$Somebutton.add_Click({
$SomeLabel.Content = "Calculating..."
Start-Job -ScriptBlock {
#Computation that takes time
#...
$SomeLabel.Content = "Calculated value"
}
})
#Show XAML GUI
$xamlGUI.ShowDialog() | out-null
xamlGUI
是表单本身和$Somebutton
/$SomeLabel
是我能够从 xaml 读取并转换为 Powershell 变量的控件。
我试图理解为什么我开始的工作在计算完成后没有更新我的标签。它实际上什么也没做。
我是 Powershell 工作的新手,我想知道我是否缺少某些东西。