Не думаю, что я нашел то, что искал, и не уверен, если это возможно ... Я работал с фоновыми работниками, чтобы выполнять процессы и во время определенных событий "ProgressChanged" извлекать сообщения из фона. рабочий и обновить заданное диалоговое окно. Нет проблем.
Новый элемент ... Во время определенного процесса, который я пытаюсь запустить в фоновом режиме, в зависимости от определенного условия, мне нужно, чтобы он фактически вызывал новое диалоговое окно Window, чтобы получить пользовательский ввод, прежде чем возобновить свою работу. . В псевдоформате ..
Start Window
Click Button For Action
Create BackgroundWorker (BGW) and enable progress changed
Link BGW "ProgressChanged" to CurrentWindowCheckProgress method
run BGW process
В BGW, при определенных условиях, я обновляю ход выполнения и на BGW есть флаг, что мне нужно конкретное диалоговое окно X, которое будет показано пользователю. Таким образом, с помощью ReportProgress () выполняется подключение к методу CurrentWindowCheckProgress (который находится в потоке пользовательского интерфейса). Этот метод видит флаг и должен создать новый Window (), получить ответ, затем вернуться к потоку BGW, чтобы продолжить.
Пока что вся логика работает, как и планировалось, но я получаю ошибку
"Вызывающий поток должен быть STA, потому что это требуется для многих компонентов пользовательского интерфейса."
Итак, как / что мне нужно сделать, чтобы показать пользователю мою промежуточную форму "TestPromptWindow".
Это C #, WPF, VS2010, .Net 4.0