Если у вас есть приложение Windows.Forms и вы пытаетесь показать окно сообщения из потока, который не является основным потоком пользовательского интерфейса, поведение окна сообщения не определено. Смысл, это может или не может показать, быть непоследовательным, или некоторые другие проблемы.
Например, отображение окна сообщения из события BackgroundWorker's DoWork может или не может работать. В одном случае сообщение-окно-результат всегда отменялось независимо от того, какая кнопка была нажата.
Поэтому, если вы используете окно сообщения только для целей отладки, используйте другую технику. Если вам нужно показать окно сообщения, вызовите его из основного потока пользовательского интерфейса.
Консольное приложение обычно не должно иметь проблем с отображением окон сообщений. Тем не менее, у меня были случаи, когда мне приходилось спать в потоке за 100 мс до вызова окна сообщения.
Обратите внимание, как указал TomTom, основным потоком пользовательского интерфейса является цикл сообщений Windows в приложении. Это напоминает мне, что мне когда-то приходилось создавать форму в консольном приложении, чтобы создать цикл сообщений Windows, чтобы мое приложение могло отвечать на сообщения Windows.