private async Task <FetchRowsResult> FetchRows(int page, CancellationToken cancellationToken) { try { CancellationToken linkedToken = BackgroundOperation.Register(this, cancellationToken); if (page == 1) { await Task.Delay(500); } List <T> result = await RunAsync(() => FetchPage.Invoke(page, linkedToken)); PageCount = result.Capacity; PageSource.UpdateSummaries(); return(new FetchRowsResult(result.Cast <object>().ToArray())); } catch (TaskCanceledException) { return(new FetchRowsResult(new object[] { })); } finally { BackgroundOperation.UnRegister(this); } }
private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { var recordPage = new FetchPage(repository); this.Hide(); recordPage.Show(); }
/// <summary> /// Constructor. /// </summary> /// <param name="maxNumItems">max number of items</param> /// <param name="fetchPageDelegate">the delegate that fetches a page</param> public PageFetcher(BigInteger maxNumItems, FetchPage fetchPageDelegate) { MaxNumItems = maxNumItems; this.fetchPageDelegate = fetchPageDelegate; }
public PageFetcher(long maxNumItems, FetchPage fetchPageDelegate) { MaxNumItems = maxNumItems; this.fetchPageDelegate = fetchPageDelegate; }