title: How to make this extension method compile?
body: <p>I am trying to create an extension method for the generic delegate <code>Action&lt;T&gt;</code> to be able to make simple asynchronous calls on <code>Action&lt;T&gt;</code> methods. It basically just implements the pattern for when you want to execute the method and don't care about it's progress:</p>
  
  <pre><code>public static class ActionExtensions
  {
      public static void AsyncInvoke&lt;T&gt;(this Action&lt;T&gt; action, T param) {
          action.BeginInvoke(param, AsyncActionCallback, action);
      }
  
      private static void AsyncActionCallback&lt;T&gt;(IAsyncResult asyncResult) {
          Action&lt;T&gt; action = (Action&lt;T&gt;)asyncResult.AsyncState;
          action.EndInvoke(asyncResult);
      }
  }
  </code></pre>
  
  <p>The problem is that it won't compile because of the extra <code>&lt;T&gt;</code> that makes the <code>AsyncActionCallback</code> generic and have a different signature than expected. 
  The signature <code>void AsyncActionCallback(IAsyncResult)</code> is expected.</p>
  
  <p>Does anyone know how to work around this or to accomlish what I am trying to do?</p>