// 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); } } }