/// <summary> /// 异步加载图片 /// </summary> public async Task <Exception> LoadImageAsync() { // client var net = CurrentMoeItem.Site.GetCloneNet(CurrentMoeItem.ThumbnailUrlInfo.Referer, 30d); net.ProgressMessageHandler.HttpReceiveProgress += ProgressMessageHandlerOnHttpReceiveProgress; Exception loadEx = null; try { Cts?.Cancel(); Cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); var response = await net.Client.GetAsync(CurrentMoeItem.Urls.GetPreview().Url, Cts.Token); await using Stream stream = await response.Content.ReadAsStreamAsync(); BitmapImage Func() { return(UiUtility.GetBitmapImageFromStream(stream)); } var source = await Task.Run(Func, Cts.Token); if (source != null) { PreviewBitmapImage = source; SetImage(source); } } catch (Exception ex) { loadEx = ex; } if (loadEx == null) { //this.Sb("LoadedImageSb").Begin(); } else { //this.Sb("LoadFailSb").Begin(); Ex.Log(loadEx.Message, loadEx.StackTrace); Ex.Log($"{CurrentMoeItem.ThumbnailUrlInfo.Url} 图片加载失败"); } return(loadEx); }