title: Anonymous methods and delegates
body: <p>I try to understand why a BeginInvoke method won't accept an anonymous method.</p>
  
  <pre><code>void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
  {
      if (InvokeRequired)
      {
          //Won't compile
          BeginInvoke(delegate(object sender, ProgressChangedEventArgs e) 
          { bgWorker_ProgressChanged(sender, e); });
      }
  
      progressBar1.Increment(e.ProgressPercentage);
  }
  </code></pre>
  
  <p>It tells me 'cannot convert from 'anonymous method' to 'System.Delegate' while when I cast the anonymous method to a delegate it does work ?</p>
  
  <pre><code>BeginInvoke((progressDelegate)delegate { bgWorker_ProgressChanged(sender, e); });
  </code></pre>