WPF中的UI更新存在问题。WPF元素事件处理程序中的UI更新
我有这样的代码:
private void ButtonClick_EventHandler(object sender, RoutedEventArgs e)
{
Label.Visibility = Visibility.Visible;
TextBox.Text = "Processing...";
LongTimeMethod(); //some long operation
}
的问题是,直到LongTimeMethod端部(即事件处理程序结束时),Label.Visibility和TextBox.Text不会改变。
我解决它像这样至今:
private void ButtonClick_EventHandler(object sender, RoutedEventArgs e)
{
Label.Visibility = Visibility.Visible;
TextBox.Text = "Processing...";
Dispatcher.BeginInvoke(new Action(LongTimeMethod),
DispatcherPriority.Background);
}
有没有使用调度调用任何其他解决方案?调用this.UpdateLayout()不起作用。
Application.DoEvents没有带入WPF!如果你想释放UI线程,你应该*释放UI线程*,而不是通过处理任何未决的消息来伪造它。 – 2011-06-14 16:30:45
我们坚持并行化,我刚刚提出了一种替代解决方案。 – 2011-06-14 16:34:52