WPF - 事件线程,GUI更新问题

时间:2009-08-07 22:20:03

标签: wpf multithreading binding

我正在尝试向主窗口发送两个事件,以便我可以显示某种动画,让用户知道我正在更新数据。

这是一个ObservableCollection对象,因此主窗口上的绑定会立即拾取OnPropertyChanged。睡眠只在那里,以便用户可以看到动画。

但是,从未见过第一个OnPropetyChanged。我假设这是因为我们在这里的单个线程中,timer_Tick必须在GUI更新之前完成。任何建议?在VB6中,我们将使用DoEvents或Form.Refresh。

谢谢!

private void timer_Tick(object sender, EventArgs e)
    {
        Loading = "Before: " + DateTime.Now.ToString();
        OnPropertyChanged("Loading");

        LoadData();
        Thread.Sleep(1000);

        //Loading = Visibility.Hidden;
        Loading = "After: " + DateTime.Now.ToString();
        OnPropertyChanged("Loading");           
    }

1 个答案:

答案 0 :(得分:0)

C#有Application.DoEvents但除非绝对必要,否则我不建议使用它。

您是否尝试在Dispatcher.Invoke

中包装OnPropertyChanged来电