/// <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); } }