MainWindowから Showするのに時間のかかるSubWindowを
非同期で表示するにはどうしたらよいのか、お教えください。


private void button1_Click(object sender, RoutedEventArgs e)

  Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(ShowSub));
}

private void ShowSub()
{
  SubWindow sub = new SubWindow();
  Thread.Sleep(3000);

  sub.Show();
}

こんなコードで実行すると、実行完了まで、MainWindowの操作ができなくなってしまっています。
Dispatcherの使い方が間違っているんだろう…というくらいまでは分かるのですが
それ以上わからず手じまいになってしまっています。