Блок потока пользовательского интерфейса

Я создал простое приложение 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();
}
9
задан H.B. 24 September 2011 в 10:10
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: