I have a delegate foo, I call BeginInvoke on it and retrieve the IAsyncResult into a var bar.
I then call EndInvoke(bar) and everything is happy.
Why do I have to pass bar to endinvoke? what exactly is going on that demands this? I realize Endinvoke is mandatory to clear possible resource leaks, but this parameter makes no sense...