Для пакетной загрузки большого количества файлов у меня есть один раздел кода CSharp WPF, который порождает потоки, позволяющие параллельную загрузку файлов.
Если при загрузке произойдет ошибка, сообщение будет выдано с помощью MessageBox. Это отлично работает.
Но недавно мы решили настроить внешний вид MessageBox. Я обнаружил, что при открытии нашего нового окна WPF MessageBox с ShowDialog () выдается ошибка, говорящая о невозможности запуска графического интерфейса пользователя. Это происходит только тогда, когда код из порожденного потока пытается открыть пользовательское окно сообщения - я не вижу проблемы, когда пользовательский MessageBox открывается из основного потока.
Мое временное исправление - перехватывать любые ошибки, возникающие при запуске пользовательского диалога, и альтернативно вызывать стандартный MessageBox.Show () для отображения сообщения. Это работает.
Я не уверен, почему можно использовать стандартный MessageBox.Show (), но это не для пользовательского окна. Есть ли способ обойти это?