Так же, как вопрос задает вопрос: что делает Application.DoEvents() при вызове в фоновом потоке?Каков эффект вызова Application.DoEvents() в фоновом потоке?
Чтобы дать некоторый контекст, я просматриваю довольно сложное решение, написанное (не мной) для .NET CF в C#. Причина, по которой я рассматриваю это, состоит в том, что у меня есть некоторые неотъемлемые проблемы, которые меня попросили исследовать.
Один довольно интересный лакомый кусочек - приложение создает длительный фоновый поток при запуске, который входит в синхронизированный цикл. Он заканчивает вызов Application.DoEvents() для каждой итерации цикла.
Я не могу понять, каков будет эффект от этого - развеет ли он очередь сообщений в главном потоке приложения? Или он очищает очередь сообщений в потоке, на котором он был вызван (хотя фоновый поток не будет иметь очередь для флеша).
Это почти наверняка является причиной какого-либо иначе необъяснимого поведения приложения.
Принятый ответ в [этой публикации] (http://stackoverflow.com/questions/6267001/does-doevents-effect-only-the-current-thread) решает ваш вопрос. – dotNET