What is difference between Invoke and Begin Invoke

Started by beingchinmay, 03-06-2017, 03:25:14

Previous topic - Next topic

beingchinmayTopic starter


  • 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.
    BeginInvoke is asynchronous. When BeginInvoke is called from the UI thread the request will be executed
    in parallel with the UI thread. Which means it may not execute until after the currently executing method
    has returned. So in this case the text box will never appear to update because the for loop will not be interrupted, as the calling thread will not wait for this event to be completed before continuing