У меня есть простая страница с кнопкой и надписью на ней. Когда я нажимаю кнопку, чтобы обновить текст метки, я скопировал код с здесь
Однако, когда я использую следующий пример. Текст не обновляется, пока функция не будет завершена. Есть идеи. Форма окна WPF С кнопкой и ярлыком на ней.
У меня есть следующее в коде, кнопка нажимается, и первое сообщение никогда не отображается.
Thread.Sleep предназначен для извлечения данных из базы данных, чтобы вернуться на экран, это может занять от 3 до 30 секунд, поэтому я хочу заставить его работать, чтобы показать пользователю что-то.
Есть идеи ???
using System.Threading;
using System.Windows;
using System.Windows.Threading;
namespace NetSpot.RESV4.Presentation
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
label1.Content = "Button 1 Clicked";
ForceUIToUpdate();
Thread.Sleep(4000);
label1.Content = "button 1 Updated";
}
public static void ForceUIToUpdate()
{
DispatcherFrame frame = new DispatcherFrame();
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Render, new DespatcherOperationCallback(delegate(object parameter)
{
frame.Continue = false;
return null;
}), null);
Dispatcher.PushFrame(frame);
}
}
}