Приложение WPF вызывает API, которому нужен насос сообщений; Dispather.Run () вызывает проблемы - PullRequest
0 голосов
/ 08 апреля 2011

У меня есть приложение WPF, которое использует библиотеку сторонних поставщиков.Мое приложение не получает никаких событий, которые запускает библиотека.Мне сказали, что это потому, что мне нужен насос сообщений.

В другой (очень похожий) вопрос , принятый ответ предложил с использованием System.Windows.Threading.Dispatcher.Run ().

Однако, когда я добавляю этот вызов, мое окно не всплывает - приложение эффективно фоновое, и я должен закрыть его с помощью диспетчера задач.

I 'Я действительно в тупике, и я даже не знаю, как это расследовать.Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 08 апреля 2011

У вас уже есть один, если вы используете WPF, нет другого способа получить любые уведомления Windows. Каждое приложение WPF начинает свою жизнь с вызова Application.Run () в главном потоке. Обычно он хорошо спрятан, автоматически генерируется в файле исходного кода bin \ debug \ app.g.cs. Application.Run () в свою очередь вызывает Dispatcher.Run ()

Ваш поставщик правильный, без цикла сообщений многие компоненты COM становятся кататоническими. Но так как у вас есть, вам нужно искать проблему в другом месте. Не используйте компонент в потоках.

...