可能是一个简单的问题,但我的大脑今天不起作用。
我正在编写一个小的PowerShell脚本来完成各种任务。使用WPF TabControl将这些任务逻辑分组到选项卡中。
有几个选项卡会进行一些检查,以将本地文件日期与服务器文件日期进行比较,这需要一些时间。 (诚然,只有几秒钟,但这意味着在找到文件版本日期之前,标签不会呈现。)
所以 - 当脚本运行时,它会打开(快速)并显示第一个选项卡。然后,当选择每个选项卡时,我会使用以下内容为其余选项卡生成内容:
$Tabs = $d.FindName('Tabs')
$Tabs.Add_SelectionChanged({ GenerateContent ($Tabs.SelectedItem).Header})
到目前为止,非常好,但是当您选择其中一个标签时,它似乎挂起,而我的脚本正在获取所需的信息。
我想要它做的是立即切换到标签,然后在获取信息时生成“请稍候......”,然后使用我需要的信息刷新页面。
有人能建议这样做的好方法吗?
的Ta,
本
答案 0 :(得分:2)
BackgroundWorker - 您需要的是在单独的线程上处理运行脚本,以便您的UI线程是免费的,并且您可以显示“请稍候...”消息。执行完成后,您需要更新有关它的UI。
请参考, http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx