private async void MoveNext() { if (!_navSemaphore.Wait(0)) { return; } var clock = new WallClockMeasurement(); if (await _collectionNavigator.MoveNext()) { clock.Report(200, "MOVE NEXT: Navigation"); UpdateViewToCurrentCollection(); clock.Report(200, "MOVE NEXT: Update UI"); } _navSemaphore.Release(); }
public static async Task <List <StorageFolder> > GetSubfolders(StorageFolder parent) { List <StorageFolder> subfolders = new List <StorageFolder>(); if (parent == null) { return(subfolders); } await FileErrorHelper.RunMethodAsync(async delegate(String path) { var clock = new WallClockMeasurement(); var folderOptions = new QueryOptions(CommonFolderQuery.DefaultQuery); folderOptions.FolderDepth = FolderDepth.Deep; var folderQuery = parent.CreateFolderQueryWithOptions(folderOptions); var unsortedFolders = await folderQuery.GetFoldersAsync(); subfolders = unsortedFolders.OrderBy(f => f.Path).ToList(); clock.Report(0, "Querying " + subfolders.Count() + " subfolders of " + parent.Path); }, parent.Path); return(subfolders); }