private async void DisplaySearchPreviewResult(string searchStr) { int maxResultCount = 10000; JobArgs args = new JobArgs(); args.EarliestTime = this.searchEarliestTime; args.LatestTime = this.searchLatestTime; args.SearchMode = SearchMode.RealTime; Job realtimeJob = await MainPage.SplunkService.Jobs.CreateAsync(searchStr, count : maxResultCount, args : args); Stopwatch watch = new Stopwatch(); watch.Start(); this.allResults.Clear(); int resultCount = 0; do { using (SearchResultStream resultStream = await realtimeJob.GetSearchPreviewAsync()) { resultCount = resultStream.Count(); } } while (resultCount == 0 && watch.Elapsed.TotalSeconds <= 10 && !this.cancelSearchTokenSource.Token.IsCancellationRequested); bool showFirstPage = false; SearchResultArgs searchArgs = new SearchResultArgs(); searchArgs.Count = maxResultCount; using (SearchResultStream resultStream = await realtimeJob.GetSearchPreviewAsync(searchArgs)) { titleGrid.Visibility = Visibility.Visible; Task task = this.GetResultTask(resultStream); //start a task to get all results do { if (this.allResults.Count > 0) { if (!showFirstPage && this.ShowResultPage(this.allResults, 0, this.itemsPerPage)) { showFirstPage = true; } if (this.currentShownPageIndex < 0) { ShowPagingLink(0); } } await Task.Delay(1000); } while (!(task.Status == TaskStatus.RanToCompletion || task.Status == TaskStatus.Faulted || task.Status == TaskStatus.Canceled)); if (!showFirstPage) { this.ShowResultPage(this.allResults, 0, this.itemsPerPage); } if (this.currentShownPageIndex < 0) { ShowPagingLink(0); } this.PageContentReset(); await realtimeJob.CancelAsync(); } }