object ISynchronizeInvoke.EndInvoke(IAsyncResult result) { ActiveObjectAsyncResult far = result as ActiveObjectAsyncResult; Contract.ThrowIfNull(far); object r = null; try { r = far.Future.Wait(); } finally { far.DestroyWaitHandle(); } return(r); }