Qual é a diferença entre Invoking e BeginInvoking a MessageBox?
Em um formulário, compare
BeginInvoke (new Action (() => {
MessageBox.Show ());
}));
com
Invoke (new Action (() => {
MessageBox.Show ());
}));
Qual é a diferença e quando devo usar uma sobre a outra? Como o comportamento é afetado pela bomba de mensagens da MessageBox?
Eu fiz alguns testes e descobri queambos Os métodos bloqueiam a interface do usuário.
A única diferença é que Invoke é realmente chamado instantaneamente enquanto BeginInvoke leva um tempo (muito curto) até que o código seja executado. Isto é esperado.