public virtual void EndRecv(IAsyncResult asyncResult) { if (asyncResult == null) { throw new ArgumentNullException("asyncResult"); } IAsyncResult result = (IAsyncResult)asyncResult; RecvAllDelegate asyncDelegate = result.AsyncState as RecvAllDelegate; if (asyncDelegate != null) { asyncDelegate.EndInvoke(asyncResult); this.State = EPop3ClientState.Awaiting; } else { RecvDelegate delegate3 = result.AsyncState as RecvDelegate; if (delegate3 != null) { delegate3.EndInvoke(asyncResult); this.State = EPop3ClientState.Awaiting; } else { this.State = EPop3ClientState.Awaiting; } } }