Как остановить один из нескольких диспетчеров WPF? - PullRequest
0 голосов
/ 20 января 2009

У меня есть приложение с некоторыми фоновыми потоками (на самом деле это встроенный WCF-сервис). Каждый поток запускает свой собственный Dispatcher для использования некоторых WPF-классов (MediaPlayer-объекты для обработки некоторых аудио / видео-файлов; он ставит в очередь некоторых делегатов с помощью BeginInvoke и, наконец, вызывает Dispatcher.Run). Когда обработка будет завершена, я хочу завершить работу диспетчера, чтобы завершить поток. Вызов BeginInvokeShutdown отключает всех диспетчеров в приложении, что приводит к закрытию приложения.

Могу ли я что-нибудь сделать, чтобы диспетчер завершил цикл обработки сообщений?

1 Ответ

1 голос
/ 20 января 2009

Хорошо, когда вы размещаете WCF-службу в WPF-приложении, вызываемый метод службы имеет тот же диспетчер, что и приложение. Если я запускаю новый поток с его собственным диспетчером, InvokeShutdown работает как положено.

...