InvokeRequired bascially tells you if the thread that is calling the method is the thread where the gui component exists.
So if you are calling a method on a GUI item, you check if InvokeRequired is true. If it is, you invoke the call on itself using a delgate.
public void DisplayMyForm()
{
if (this.InvokeRequired)
{
this.Invoke(new DisplayEventHandler(DisplayMyForm), new object[]);
}
else
{
this.show;
}
}
public delegate void DisplayEventHandler();