IAsyncResult
<p>Why does IAsyncResult require I keep a reference to the Delegate that BeginInvoked it? </p>

<p>I would like to be able to write something like:</p>

<pre><code>new GenericDelegate(DoSomething).BeginInvoke(DoSomethingComplete);

void DoSomethingComplete(IAsyncResult ar)
{
    ar.EndInvoke();
}
</code></pre>
