Всем доброго времени суток, такая задача, показать модальное окно так чтобы у него был свой UI поток. Причём управление должно сразу же вернуться, после того как такой диалог будет создан. Пытаюсь сделать это так:
public void ShowModalDialogAndContinue()
{
blockingThread = new Thread( BlockingWindowThread );
blockingThread.SetApartmentState( ApartmentState.STA );
blockingThread.Start();
}
private void BlockingWindowThread()
{
var window = new BlockingWindow();
//window.Owner = mainWindow; - если раскомментировать, то кидается исключение, т.к mainWindow пренадлежит другому потоку
window.ShowDialog();
}
Если раскомментировать закомментированную строчку, то вывалится исключение, что вполне естественно, ведь mainWindow — главное окно, которое должно блокироваться моим модальным диалогом, было создано в другом потоке. Вопрос — как назначить mainWindow владельцем BlockingWindow ? Может быть как-то черех mainWindow.Dispatcher ? Если можно через него, то как ?