title: Is Delegate.EndInvoke() really necessary?
body: <p>I've read a couple of forums and even a stackoverflow question or two saying that Delegate.EndInvoke is necessary when using Delegate.BeginInvoke.  Many of the articles I've read talking about using BeginInvoke have failed to mention using EndInvoke.  Also I've deployed production code using only BeginInvoke and there doesn't appear to be any memory issues.  The way I've used BeginInvoke is generally with threads that I don't care about when they finish or how long they take to process.</p>