// Token: 0x06002CE1 RID: 11489 RVA: 0x000CA808 File Offset: 0x000C8A08
        private object GetPageAsyncDelegate(object arg)
        {
            FixedDocument.GetPageAsyncRequest getPageAsyncRequest = (FixedDocument.GetPageAsyncRequest)arg;
            PageContent pageContent = getPageAsyncRequest.PageContent;

            if (!this._pendingPages.Contains(pageContent))
            {
                this._pendingPages.Add(pageContent);
                pageContent.GetPageRootCompleted += this.OnGetPageRootCompleted;
                pageContent.GetPageRootAsync(false);
                if (getPageAsyncRequest.Cancelled)
                {
                    pageContent.GetPageRootAsyncCancel();
                }
            }
            return(null);
        }
 // Token: 0x06002CBE RID: 11454 RVA: 0x000C9C20 File Offset: 0x000C7E20
 internal void GetPageAsync(int pageNumber, object userState)
 {
     if (pageNumber < 0)
     {
         throw new ArgumentOutOfRangeException("pageNumber", SR.Get("IDPNegativePageNumber"));
     }
     if (userState == null)
     {
         throw new ArgumentNullException("userState");
     }
     if (pageNumber < this.Pages.Count)
     {
         PageContent pageContent = this.Pages[pageNumber];
         FixedDocument.GetPageAsyncRequest getPageAsyncRequest = new FixedDocument.GetPageAsyncRequest(pageContent, pageNumber, userState);
         this._asyncOps[userState] = getPageAsyncRequest;
         DispatcherOperationCallback method = new DispatcherOperationCallback(this.GetPageAsyncDelegate);
         base.Dispatcher.BeginInvoke(DispatcherPriority.Background, method, getPageAsyncRequest);
         return;
     }
     this._NotifyGetPageAsyncCompleted(DocumentPage.Missing, pageNumber, null, false, userState);
 }
        // Token: 0x06002CE2 RID: 11490 RVA: 0x000CA868 File Offset: 0x000C8A68
        private void OnGetPageRootCompleted(object sender, GetPageRootCompletedEventArgs args)
        {
            PageContent pageContent = (PageContent)sender;

            pageContent.GetPageRootCompleted -= this.OnGetPageRootCompleted;
            this._pendingPages.Remove(pageContent);
            ArrayList arrayList = new ArrayList();
            IEnumerator <KeyValuePair <object, FixedDocument.GetPageAsyncRequest> > enumerator = this._asyncOps.GetEnumerator();

            try
            {
                while (enumerator.MoveNext())
                {
                    KeyValuePair <object, FixedDocument.GetPageAsyncRequest> keyValuePair = enumerator.Current;
                    FixedDocument.GetPageAsyncRequest value = keyValuePair.Value;
                    if (value.PageContent == pageContent)
                    {
                        ArrayList arrayList2 = arrayList;
                        keyValuePair = enumerator.Current;
                        arrayList2.Add(keyValuePair.Key);
                        DocumentPage page = DocumentPage.Missing;
                        if (!value.Cancelled && !args.Cancelled && args.Error == null)
                        {
                            FixedPage result    = args.Result;
                            Size      fixedSize = this.ComputePageSize(result);
                            page = new FixedDocumentPage(this, result, fixedSize, this.Pages.IndexOf(pageContent));
                        }
                        this._NotifyGetPageAsyncCompleted(page, value.PageNumber, args.Error, value.Cancelled, value.UserState);
                    }
                }
            }
            finally
            {
                foreach (object key in arrayList)
                {
                    this._asyncOps.Remove(key);
                }
            }
        }