private void Init() { XLEngine = new XunleiDownloadTask(); ResetSidebarButtons(); File.Delete("avatar.png"); XLEngine.AddToTask(AT.ME.User.ProfileImageUrls.Px170x170, Path.Combine(Environment.CurrentDirectory, "avatar.png")); Username.Text = AT.ME.User.Name; LoadAvat(); GetRankingAll(); }
private async void GetRankingAll() { if (CallSideBar.IsChecked != false) { CallSideBar.IsChecked = false; Toggle(this, new RoutedEventArgs()); } CurrectMode = "Ranking"; ModeText.Text = "今日排行榜"; Brush Highlightcolor = new SolidColorBrush(Color.FromArgb(255, 0, 134, 245)); iconRanking.Foreground = Highlightcolor; textRanking.Foreground = Highlightcolor; // 老夫要性能优化 ItemCollection temp = listbox.Items; listbox.ItemsSource = null; Loading.Start(); await Task.Run(async() => { for (int i = 0; i < temp.Count; i++) { #if DEBUG Console.WriteLine(GC.GetGeneration(temp[i])); #endif ((WorkShow)(temp[i])).Dispose(); ((List <WorkShow>)(listbox.ItemsSource)).Remove((WorkShow)(temp[i])); } GC.SuppressFinalize(temp); FlushMemory.Flush(); Paginated <Rank> shit = await AT.T.GetRankingAllAsync("daily", 1, 20); listbox.Dispatcher.Invoke(() => { List <WorkShow> l = new List <WorkShow>(); foreach (Rank r in shit) { foreach (RankWork w in r.Works) { long workid = 0; long userid = 0; bool isliked = false; if (w.Work.Id != null) { workid = (long)w.Work.Id; } if (w.Work.User.Id != null) { userid = (long)w.Work.User.Id; } if (w.Work.FavoriteId != null) { isliked = true; } if (!File.Exists(string.Format("{0}\\cache\\{1}_preview.png", Environment.CurrentDirectory, workid))) { XLEngine.AddToTask(w.Work.ImageUrls.Medium, string.Format("{0}\\cache\\{1}_preview.png", Environment.CurrentDirectory, workid)); } l.Add(new WorkShow(w.Work.Title, workid, w.Work.User.Name, userid, isliked, w.Work.ImageUrls.Medium)); } } listbox.ItemsSource = l; }); }); await Task.Delay(1000); Loading.Stop(); }