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