Я пытаюсь отправить два события в главное окно, чтобы показать какую-то анимацию, которая позволит пользователю узнать, что я обновляю данные.WPF - Threading Threading, вопрос с обновлением 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, новый ThreadStart (делегат {OnPropertyChanged ("Загрузка");})); Я в классе, поэтому я не могу использовать этот вызов. Когда я перехожу через код, после первой диспетчеризации вдова становится черной, а затем обновляется после того, как я выхожу из таймера ... – LSTayon