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