Откройте COM-объект InternetExplorer, чтобы выполнить некоторую автоматизацию, используя Wating из приложения WPF, но поддерживайте отзывчивость пользовательского интерфейса.Это возможно? - PullRequest
0 голосов
/ 16 декабря 2010

У меня есть приложение, которое запускает процесс, который должен открыть интернет-обозреватель, перейти к URL-адресу и сделать там кое-что, ввести некоторые данные и вернуться.
Обычно это занимает некоторое время (несколько страниц, которые необходимо заполнить, не имеет значения).Проблема заключается в том, что во время выполнения этого процесса пользовательский интерфейс вызывающего приложения (стандартного wpf-приложения) не отвечает / зависает.Когда процесс возвращается, у меня есть некоторая информация, которую мне нужно установить в одном из объектов приложения WPF

Основная проблема заключается в том, что, поскольку IE нужно вызывать из потока STA, если я пытаюсь вызвать егоиз-за диспетчера в асинхронном или синхронном режиме по какой-то причине пользовательский интерфейс заблокирован (я пробовал разные DispatcherPriority-ы, но мне не повезло).Если я запускаю новый BackgroundWorker, этот поток находится в режиме MTA (и я не могу переключить его обратно), так что есть проблема, и у меня есть исключение

Я действительно потерян здесь, кто-нибудь может поставить некоторыесвет в это?может быть, то, что я хочу сделать, просто невозможно.

1 Ответ

0 голосов
/ 16 декабря 2010

Вы пытались создать свой собственный фоновый поток (не полагаясь на BackgroundWorker) и установили его ApartmentState на STA?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...