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.