【发布时间】:2016-11-02 21:46:55
【问题描述】:
我有一个使用 MVVM 设计属性的 WPF 应用程序。填充网格需要一个长时间运行的过程,我想为其显示一个繁忙的光标。我有改变光标工作的部分。我遇到的问题是光标绑定到一个名为 IsBusy 的布尔值。当调用运行一段时间的方法时,我将 IsBusy 设置为 true,当方法完成时,我将其设置回 false。
public void LongProcedure(){
IsBusy=true;
... long running code here
IsBusy=false;
}`
我知道与 IsBusy 绑定的游标正在工作,因为我用另一个过程对其进行了测试
IsBusy=!IsBusy;
这确实会切换光标。我遇到的问题是在方法中的代码运行时视图似乎没有刷新。将 IsBusy 设置为 true 后,有没有办法强制刷新视图?
【问题讨论】:
-
您是否在同一个线程上执行长时间运行的任务?
-
是的,我希望保持简单。该过程需要 5-10 秒,并且在运行时他们不能做任何其他事情。我想显示等待光标只是为了让用户知道发生了什么事。
-
@Pedler 不幸的是,更新屏幕需要相同的线程。由于它运行其他东西,它不能用于更新屏幕。
-
亲爱的主,请告诉我如何在 UI 线程中工作时不阻塞 UI 线程的典型欺骗目标,赞美你的名字。阿门。 ……等等,说不定会是这样呢?我认为是这样。准备好接受过多的投票吧,Pedler!