在维护旧的 MFC 应用程序的同时,我们在 WPF 中实现了一个新的进度对话框栏。该应用程序当前的 UI 线程忙于处理大量业务操作,但更改它超出了范围。
当字符串属性更改其值(绑定到 TextBox 的文本)时,进度对话框不会刷新(仅当线程不那么忙时)。
据我所知,属性的更新是从 UI 线程完成的,线程应该能够更新对话框并在继续下一步之前重新绘制它,所以我不明白为什么它没有被更新以及如何修复它。
有任何想法吗?
编辑:这个解决方案的缺点是什么,我已经尝试过了,似乎工作正常:
private static Action EmptyDelegate = delegate() { };
public static void Refresh(this UIElement uiElement)
{
uiElement.Dispatcher.Invoke(DispatcherPriority.Render, EmptyDelegate);
}