private async Task LoadImages(int count, int skip, int block, CancellationToken ct) { for (var i = count; i > 0; i -= block) { var sw = new Stopwatch(); sw.Start(); var result = await GetImagesFromCollectionAsyncTask(block, skip + count - i); lock (NavigatorList) { ct.ThrowIfCancellationRequested(); result.ForEach(x => NavigatorList.Add(x)); } sw.Stop(); Debug.WriteLine("Loading {0} elemets, skip {1} elemets in ms: {2}", block, skip + count - i, sw.ElapsedMilliseconds); if (i == count) { IsLoading = false; } } }
private void Reload() { lock (NavigatorList) { _ctsImageLoading?.Cancel(); NavigatorList.Clear(); } GetImagesFromCollectionAsync(0, 500); }
private void ShuffleNavigatorList() { var randomGenerator = new Random(); lock (NavigatorList) { var newCollection = NavigatorList.ToList(); var count = NavigatorList.Count; foreach (var navigatorListEntry in newCollection) { NavigatorList.Remove(navigatorListEntry); var newIndex = randomGenerator.Next(0, count - 2); NavigatorList.Insert(newIndex, navigatorListEntry); } } }
private void OnViewOnSelectedItemsChanged(object sender, EventArgs args) { OnPropertyChanged(() => SelectedItems); TagSearchVM.UpdateCurrentTags(_view.ListBoxElement.SelectedItem as INavigatorListEntry); FileInfoVM.UpdateCurrentInfo(_view.ListBoxElement.SelectedItem as INavigatorListEntry, NavigatorList.IndexOf(_view.ListBoxElement.SelectedItem as INavigatorListEntry)); }