我想知道如何在執行Thread.sleep()之前刷新wpf元素。在下面的場景中,首先執行Thread.sleep()調用,然後更新wpf元素。在Thread.sleep執行之前更新wpf元素
我嘗試這樣做:
在button_click事件處理程序:
編輯:爲了瞭解我想要什麼,我添加了一些變量的幽會和評論。
private void button_click(object sender, RoutedEventArgs e){
//fist of all, set the static variable to_change to true, then Update GUI label
to_change = true;
Thread thread = new Thread(UpdateGUI);
thread.Start();
//Then sleep 1 second and (With label changed)
Thread.Sleep(1000);// one second
//and lately reset the value of to_change to false and update the GUI again
to_change = false;
//UpdateGUI.
}
而在UpdateGUI我:
private void UpdateGUI()
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(ThreadStart)delegate()
{
this.label_success.Content = "Successful!";
}
);
}
而且我已經試過DispatcherPriority.Send這是最高優先級
我想我錯過了一些重要的概念。
在此先感謝!
這是不好的代碼 – 2012-03-13 15:37:05
**從不**睡在UI線程中。你想實現什麼? – Clemens 2012-03-13 15:39:16
@Clements我編輯了我的問題以更好地理解。如果你不明白我想要做什麼,請告訴我。 – 2012-03-14 18:08:28