This blog shows difference between invoke and begin invoke
·
Delegate.Invoke: Executes synchronously, on the
same thread.
·
Delegate.BeginInvoke: Executes asynchronously,
on a threadpool thread.
·
Control.Invoke: Executes on the UI thread, but
calling thread waits for completion before continuing.
·
Control.BeginInvoke: Executes on the UI thread,
and calling thread doesn't wait for completion.