WPF/MVVMアプリケーションで作業する。 私のメインスレッドから新しいタスクにMVCウィンドウを表示し、メインスレッドがウィンドウを閉じるのを待つことなく次の命令を実行し続けるようにするにはどうすればよいですか?ウィンドウを新しいタスクに実行してメインスレッドを実行し続ける方法
私は次のように実行したいと思います:
Window window = new Window();
View view = new View();
ViewModel viewModel = new ViewModel();
window.Content = view;
window.Show();
... program then continues with business stuff
を明らかに、私は、ウィンドウはすぐに返し、閉じ
window.Show();
を実行する場合。
私は
window.ShowDialog()
を使用している場合、スレッドは、私は続行し、次の手順を必要とするように私が望むものではないユーザーによってクローズするウィンドウを待ちます。
私は新しいスレッドにウィンドウを実行する必要があるが、これはadditionnalの問題をもたらしているとします
Task.Run(() => window.ShowDialog()));
ウィンドウは異なるものに作成されたように、これはどちらか動作しません。
だから、私は新しいタスク内window.ShowDialogの実行を許可するディスパッチャを使用する必要があるとします
Task.Run(() => Application.Current.Dispatcher.Invoke(() => window.ShowDialog()));
をしかし、これはどちらか動作しません。コンパイラはそれを受け入れ、実行時に例外をスローしませんが、ウィンドウは決して開かれません。ステップバイステップモードでデバッグすると、デバッガが新しいタスクの中に匿名を入力することはありません。
これは非常に簡単なはずですが、これを解決することはできません。あなたの親切な援助のために事前に Thx
サブウィンドウ用に個別のWindow.xamlを作成しましたか? –
実際に私はテストプロジェクトのテストメソッドからこのコードを実行します。 私は実行しようとするテストウィンドウ用に1つのxamlしか持っていません。 –
'window.Show();'に何が間違っていますか? – Nitin