, .
SomeClass.SomeEvent , . , , , .
, ShowDialog . , , , .
, , , . , , BeginInvoke , ShowDialog .
, :
SomeClass.SomeEvent += SomeEventHandler;
...
...
...
void SomeEventHandler()
{
this.BeginInvoke(new MethodInvoker(HandleEventOnUIThread));
}
void HandlerEventOnUIThread()
{
if (CheckToSeeIfFormIsAlreadyShowing())
{
SomeForm someForm = new SomeForm();
someForm.ShowDialog();
}
else
{
DoSomeStuff();
}
}
, SomeClass.SomeEvent , , .