Вызов EventHandler

У меня есть следующий обработчик событий:

private EventHandler<MyEventArgs> _myEventHandler;
public event EventHandler<MyEventArgs> MyEvent
{
  add { _myEventHandler += value; }
  remove { _myEventHandler -= value; }
}  

Может ли кто-нибудь объяснить разницу между следующими фрагментами?
Фрагмент EventHandler (A):

//Snippet A:
if (_myEventHandler != null)
{
  _myEventHandler(new MyEventArgs());
}

Snippet BeginInvoke (B):

//Snippet B:
if (_myEventHandler != null)
{
  _myEventHandler.BeginInvoke(new MyEventArgs(), ar =>
  {
    var del = (EventHandler<MyEventArgs>)ar.AsyncState;
    del.EndInvoke(ar);
  }, _myEventHandler);
}

Для пояснения: в чем разница между вызовом EventHandler «как есть» и использованием BeginInvoke ?

7
задан WaltiD 11 August 2011 в 09:33
поделиться