Executes a delegate on the thread that owns the control's underlying window handle.
The usage of the Invoke() method may sometimes lead to deadlocks. Therefore you should consider using BeginInvoke(). A more detailed explanation can be found here: http://kristofverbiest.blogspot.com/2007/02/avoid-invoke-prefer-begininvoke.html