public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData) { var result = new AsyncResult() { AsyncState = extraData, IsCompleted = false, AsyncWaitHandle = new ManualResetEvent(false), Callback = cb }; ProcessRequestIterator(context).Run().ContinueWith((t) => { result.OperationComplete(); }); return result; }