public IAsyncResult BeginProxyRequest(AsyncCallback callback, object extraData) { ExTraceGlobals.ProxyCallTracer.TraceDebug((long)this.GetHashCode(), "ProxyToEwsEventHandler.ProxyEvent"); if (base.UserContext != null) { int num; base.UserContext.DangerousBeginUnlockedAction(false, out num); if (num != 1) { ExWatson.SendReport(new InvalidOperationException("Thread held more than 1 lock before async operation"), ReportOptions.None, null); } } AsyncEnumerator asyncEnumerator = new AsyncEnumerator(callback, extraData, new Func <AsyncEnumerator, IEnumerator <int> >(this.ProcessProxyRequest), false); this.asyncResult = asyncEnumerator.AsyncResult; asyncEnumerator.Begin(); return(this.asyncResult); }