Доброго...
namespace test_thread_window
{
public partial class MainForm : Form
{
private Thread someThread;
private threadclass work;
public MainForm()
{
InitializeComponent();
work = new threadclass();
//work.UserRequestEvent += new threadclass.UserRequest(OnUserRequest);
someThread = new Thread(new ThreadStart(work.DoWork));
someThread.Start();
}
/*
void OnUserRequest(object sender, EventArgs e)
{
MessageBox.Show("Test message.", "Test", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
*/
private void MainForm_Load(object sender, EventArgs e)
{
// ...
}
}
public class threadclass
{
public delegate void UserRequest(object sender, System.EventArgs e);
public event UserRequest UserRequestEvent;
public void DoWork()
{
Thread.Sleep(1000);
//UserRequestEvent(this, new EventArgs());
// здесь нужно вызвать MessageBox
// ...
}
}
}
Сабж.
ЗЫ: Если раскомментировать код, то MessageBox будет виден, но он не будет обладать свойством модальности (если так можно выразиться

).