MessageBox сам прокачивает цикл сообщений.Это, конечно, не будет цикл сообщений Windows Forms.Все работает как обычно, но за исключением отправки запросов на вызов делегатов, отправленных Control.BeginInvoke ().Это может делать только цикл сообщений Windows Forms.
Это происходит, когда в потоке пользовательского интерфейса выполняется вызов MessageBox.Show ().Но не тогда, когда это делается в рабочем потоке, очереди сообщений являются свойством каждого потока.Если вы можете получить вызов Show для делегирования работнику, вы, вероятно, решите свою проблему.
Решение вопросов:
Вы действительно хотите обратное: работниктемы должны блокировать.Неблокирование может вызвать серьезные проблемы, очередь отправки BeginInvoke будет заполняться без границ.Одним из возможных приемов является подсчет количества вызовов BeginInvoke, обратный отсчет в цели делегата.Используйте класс Interlocked.
Порядок выполнения целей BeginInvoke гарантирован.Настоящая проблема, вероятно, связана с тем, что рабочие потоки не синхронизируются.
Отображение окна сообщения в потоке.