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