Sto cercando di utilizzare i metodi BeginInvoke() e EndInvoke() per stampare a video una Form mentre eseguo una elaborazione. Sto utilizzando questa sintassi:

codice:
public void Elaborazione()
{
  .....
}

public delegate void Elabora_Delegate();

private void Esegui(object sender, EventArgs e)
{
  Elabora_Delegate delegato = new Elabora_Delegate(Elaborazione);
  IAsyncResult asyncResult = delegato.BeginInvoke(null, null);
  Globale.elaborazione.Show(); // Form con il messaggio
  asyncResult.AsyncWaitHandle.WaitOne();
  delegato.EndInvoke(asyncResult);
}
In pratica non stampa il contenuto della Form quindi c'è ben poco di asincrono . . .
Dato che è la prima volta che uso questa sintassi, chiedo conferma della sua correttezza.