private async void refresh_btn_Click(object sender, RoutedEventArgs e) { switch (c.mode) { case "Bookmark": if (bookmark == null) { bookmark = new PixivBookmark(loader, pixiv); } if (await bookmark.ListUpdate(true)) { string title = loader.GetString("BookmarkUpdate"); string content = loader.GetString("RefreshExplanation"); ToastMessage tm = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage); tm.ToastPush(120); } break; case "FollowIllust": if (follow == null) { follow = new PixivFollowingIllust(loader, pixiv); } if (await follow.ListUpdate(true)) { string title = loader.GetString("FollowingUserUpdatingUpdate"); string content = loader.GetString("RefreshExplanation"); ToastMessage tm = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage); tm.ToastPush(120); } break; case "Recommendation": if (recommend == null) { recommend = new PixivRecommendation(loader, pixiv); } if (await recommend.ListUpdate(true)) { string title = loader.GetString("RecommendedRefresh"); string content = loader.GetString("RefreshExplanation"); ToastMessage tm = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage); tm.ToastPush(120); } await recommend.ListUpdate(true); break; case "Ranking": if (ranking == null) { ranking = new PixivRanking(loader, pixiv); break; } if (await ranking.ListUpdate(c.rankingMode, true)) { string title = loader.GetString("RankingRefresh"); string content = loader.GetString("RefreshExplanation"); ToastMessage tm = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage); tm.ToastPush(120); } break; default: if (recommend == null) { recommend = new PixivRecommendation(loader, pixiv); } if (await recommend.ListUpdate(true)) { string title = loader.GetString("RecommendedRefresh"); string content = loader.GetString("RefreshExplanation"); ToastMessage tm = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage); tm.ToastPush(120); } break; } }
/// <summary> /// 作品更新并显示 /// </summary> public async Task <bool> update() { ImageInfo img = new ImageInfo(); //也许用反射会更好? switch (c.mode) { case "Bookmark": if (bookmark == null) { bookmark = new PixivBookmark(loader, pixiv); } img = await bookmark.SelectArtwork(); break; case "FollowIllust": if (follow == null) { follow = new PixivFollowingIllust(loader, pixiv); } img = await follow.SelectArtwork(); break; case "Recommendation": if (recommend == null) { recommend = new PixivRecommendation(loader, pixiv); } img = await recommend.SelectArtwork(); //PixivCS在UI线程被建立,不支持从子线程调用 break; case "Ranking": if (ranking == null) { ranking = new PixivRanking(loader, pixiv); } img = await ranking.SelectArtwork(c.rankingMode); break; default: if (recommend == null) { recommend = new PixivRecommendation(loader, pixiv); } await Task.Run(async() => { img = await bookmark.SelectArtwork(); }); break; } if (img != null) { await viewModel.LoadImageAsync(img, c); if (backgroundMode.Equals("BackgroundTask")) { RegistTask(); //重新申请后台计时触发器 } else { timer.Interval = TimeSpan.FromMinutes(c.time); timer.Start(); } return(true); } else { return(false); } }