주 윈도우에 두 개의 이벤트를 보내려고합니다. 사용자가 데이터를 업데이트하고 있음을 알리는 애니메이션을 표시 할 수 있습니다.WPF - 이벤트 스레딩, GUI 업데이트 질문
이 개체는 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");
}
당신이 그 코드에 도움이되고 싶지 않으십니까? ;) – LSTayon
N/M 이것은 내가 사용했던 것이다 : queryTimer.Dispatcher.Invoke (DispatcherPriority.Normal, new ThreadStart (delegate {OnPropertyChanged ("Loading");}))); 클래스에있어 this.Dispatcher 호출을 사용할 수 없습니다. 코드를 단계별로 실행하면 첫 번째 파견 후 과부는 검은 색으로 변한 후 타이머 틱에서 나와서 새로 고침 만합니다 ... – LSTayon