Encontrei essa explicação e achei muito interessante, por isso compartilho com você.

Quando usar Delegate.Invoke/BeginInvoke ou Control.Invoke/BeginInvoke?

  • Delegate.Invoke: Faz a execução síncrona, na mesma thread.
  • Delegate.BeginInvoke: Faz a execução assíncrona, na threadpool.
  • Control.Invoke: Faz a execução na thread UI(User Interface), porem a chamada aguarda o fim da execução do código para poder continuar.
  • Control.BeginInvoke: Faz a execução na thread UI(User Interface), porem não aguarda o fim da execução do código para continuar.

Para aplicações em Windows Forms, Eu sugeriria que usualmente aplicasse o uso do BeginInvoke. Desta forma você não precisa se preocupar com um deadlock


Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[C#] Diferenças entre Invoke, BeginInvoke, Control.Invoke e Control.BeginInvoke

Deixe uma resposta

%d blogueiros gostam disto: