public static async Task SortAsyncLowSpeed() { int MaxNumber; End_sort = false; Cache_Processed.Clear(); Cache_Processed_Media.Clear(); Cache_Processed_Doc.Clear(); Cache_Processed_File.Clear(); Cache_Recent_Media.Clear(); Cache_Recent_Music.Clear(); Cache_Processed_Today.Clear(); /* Debug.WriteLine(" Sort_in"); * Debug.WriteLine(ItemAccess.Cache.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_Media.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_Doc.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_File.Count);*/ MaxNumber = UserSettings.GetMaxNumber(); var inputFiles = new ObservableCollection <StorageFile>(); foreach (var input in ItemAccess.Cache) { Debug.WriteLine(" Foreach"); Debug.WriteLine(ItemAccess.Cache.Count); inputFiles.Add(input); } while (inputFiles.Count != 0 && !End_sort) { /* Debug.WriteLine(" Sorting"); * Debug.WriteLine(ItemAccess.Cache.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_Media.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_Doc.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_File.Count);*/ StorageFile inputFile = inputFiles.LastOrDefault(); for (int i = inputFiles.Count - 1; i >= 0; i--) { if (inputFiles[i].DateCreated > inputFile.DateCreated) { inputFile = inputFiles[i]; } } inputFiles.Remove(inputFile); if (ItemAccess.End_sort) { Cache_Processed.Clear(); Cache_Processed_Media.Clear(); Cache_Processed_Doc.Clear(); Cache_Processed_File.Clear(); } var type = FileType_check(inputFile); var date = inputFile.DateCreated; //source = await BitmapProcess(inputFile);//图像编码 if (Today_check(date.DateTime)) { if (!Noticed) { Noticed = true; Notifications_.Notifications_Tocast(); } Cache_Processed_Today.Add(new Items { AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } if (Cache_Processed.Count <= MaxNumber) { Cache_Processed.Add(new Items { AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); if (type == "Music" || type == "Picture" || type == "Video") { if (type == "Music" && Cache_Recent_Music.Count <= 15) { Cache_Recent_Music.Add(new Items { AccessSource = await ThumbnailProcess_HQ(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } else if (Cache_Recent_Media.Count <= 15 && type != "Music") { Cache_Recent_Media.Add(new Items { AccessSource = await ThumbnailProcess_HQ(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } Cache_Processed_Media.Add(new Items { AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } else if (type == "Doc") { if (Cache_Recent_Doc.Count <= 15) { Cache_Recent_Doc.Add(new Items { AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } Cache_Processed_Doc.Add(new Items { AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } else { Cache_Processed_File.Add(new Items { AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } } } inputFiles.Clear(); // if (Cache_Processed_Today.Count > 0) ; //Notifications_.Notifications_Tocast(Cache_Processed_Today[0].StorageFile_); /* Debug.WriteLine(" Sort_out"); * Debug.WriteLine(ItemAccess.Cache.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_Media.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_Doc.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_File.Count);*/ }
public static async Task SortAsync() { int MaxNumber; End_sort = false; Cache_Processed.Clear(); Cache_Processed_Media.Clear(); Cache_Processed_Doc.Clear(); Cache_Processed_File.Clear(); Cache_Recent_Media.Clear(); Cache_Recent_Music.Clear(); Cache_Processed_Today.Clear(); /* Debug.WriteLine(" Sort_in"); * Debug.WriteLine(ItemAccess.Cache.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_Media.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_Doc.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_File.Count);*/ MaxNumber = UserSettings.GetMaxNumber(); try { for (int i = 0; i < ItemAccess.Cache.Count; i++) { for (int j = i + 1; j < ItemAccess.Cache.Count; j++) { if (ItemAccess.Cache[i].DateCreated < ItemAccess.Cache[j].DateCreated) { var temp = ItemAccess.Cache[i]; ItemAccess.Cache[i] = ItemAccess.Cache[j]; ItemAccess.Cache[j] = temp; } } } foreach (var inputFile in ItemAccess.Cache) { if (ItemAccess.End_sort) { Cache_Processed.Clear(); Cache_Processed_Media.Clear(); Cache_Processed_Doc.Clear(); Cache_Processed_File.Clear(); } var type = FileType_check(inputFile); var date = inputFile.DateCreated; //source = await BitmapProcess(inputFile);//图像编码 if (Today_check(date.DateTime)) { if (!Noticed) { Noticed = true; Notifications_.Notifications_Tocast(); } Cache_Processed_Today.Add(new Items { AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } if (Cache_Processed.Count <= MaxNumber) { Cache_Processed.Add(new Items { AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); if (type == "Music" || type == "Picture" || type == "Video") { if (type == "Music" && Cache_Recent_Music.Count <= 15) { Cache_Recent_Music.Add(new Items { AccessSource = await ThumbnailProcess_HQ(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } else if (Cache_Recent_Media.Count <= 15 && type != "Music") { Cache_Recent_Media.Add(new Items { AccessSource = await ThumbnailProcess_HQ(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } Cache_Processed_Media.Add(new Items { AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } else if (type == "Doc") { if (Cache_Recent_Doc.Count <= 15) { Cache_Recent_Doc.Add(new Items { AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } Cache_Processed_Doc.Add(new Items { AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } else { Cache_Processed_File.Add(new Items { AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile) }); } } // if (Cache_Processed_Today.Count > 0) ; //Notifications_.Notifications_Tocast(Cache_Processed_Today[0].StorageFile_); /* Debug.WriteLine(" Sort_out"); * Debug.WriteLine(ItemAccess.Cache.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_Media.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_Doc.Count); * Debug.WriteLine(ItemAccess.Cache_Processed_File.Count);*/ } } catch { //dosomething } }