Я создал простое приложение WPF и добавил кнопку в окно по умолчанию. Когда Я нажимаю на кнопку, вызывается смоделированный длительный метод работы (смоделированный с использованием Thread.Sleep (15000). Я пытаюсь заставить кнопку выполняться асинхронно, однако, несмотря на следующие онлайн-примеры, кнопка и все окно блокируются, как только я нажимаю и остается так до завершения Thread.Sleep (...).
Есть идеи, почему это происходит?
Вот код:
private void button1_Click(object sender, RoutedEventArgs e)
{
DoSomeAsyncWork();
}
private void DoSomeAsyncWork()
{
System.Windows.Threading.Dispatcher.Run();
Thread thread = new System.Threading.Thread(
new System.Threading.ThreadStart(
delegate()
{
Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() => Thread.Sleep(15000)));
}
));
thread.Start();
}