title: Invoke of an EventHandler
body: <p>I have the following EventHandler:</p>
  
  <pre><code>private EventHandler&lt;MyEventArgs&gt; _myEventHandler;
  public event EventHandler&lt;MyEventArgs&gt; MyEvent
  {
    add { _myEventHandler += value; }
    remove { _myEventHandler -= value; }
  }  
  </code></pre>
  
  <p>Could somebody explain the difference between the following snippets?<br>
  Snippet EventHandler (A): </p>
  
  <pre><code>//Snippet A:
  if (_myEventHandler != null)
  {
    _myEventHandler(new MyEventArgs());
  }
  </code></pre>
  
  <p>Snippet BeginInvoke (B):  </p>
  
  <pre><code>//Snippet B:
  if (_myEventHandler != null)
  {
    _myEventHandler.BeginInvoke(new MyEventArgs(), ar =&gt;
    {
      var del = (EventHandler&lt;MyEventArgs&gt;)ar.AsyncState;
      del.EndInvoke(ar);
    }, _myEventHandler);
  }
  </code></pre>
  
  <p>For clarification: What's the difference between invoking an EventHandler "just as it is" and using <code>BeginInvoke</code>?</p>