Если вам нужно окно сообщения, которое отображается только в то время, как ваш код продолжает работать в фоновом режиме (окно все еще является модальным и не позволит пользователю использовать другие окна, пока не будет нажата кнопка ОК), вы всегда можете запустить окно сообщения свой собственный поток и продолжайте делать то, что вы делаете в оригинальном потоке:
// Do stuff before.
// Start the message box -thread:
new Thread(new ThreadStart(delegate
{
MessageBox.Show
(
"Hey user, stuff runs in the background!",
"Message",
MessageBoxButtons.OK,
MessageBoxIcon.Warning
);
})).Start();
// Continue doing stuff while the message box is visible to the user.
// The message box thread will end itself when the user clicks OK.