I found the following code snippet on CodeProject on calling methods asynchronously at ...
http://www.codeproject.com/Articles/14931/Asynchronous-Method-Invocation
As a matter of practice, you should call EndInvoke because the caller may have handlers subscribed to the events that may not matter to your processing, but may matter to the consumer so as to ensure certain kinds of processing can take place at a known time/application state.