Aufrufen von einen EventHandler

Habe ich folgende Event-Handler:

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

Kann jemand erklären den Unterschied zwischen den folgenden snippets?

Snippet-Event-Handler (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);
}

Zur Klärung: Was ist der Unterschied zwischen Berufung auf einen EventHandler "genau so ist es" und mit BeginInvoke?

InformationsquelleAutor WaltiD | 2011-08-11
Schreibe einen Kommentar