UWP C#使用等待加载图像 我想加载PADGGLoad事件中的所有图像,但是如果图像的数量太多,一些ListVIEW条目将显示空白,所以我需要手动刷新,但这不是我想要的。
如何等待加载所有图像 这是加载页面中的代码UWP C#使用等待加载图像 我想加载PADGGLoad事件中的所有图像,但是如果图像的数量太多,一些ListVIEW条目将显示空白,所以我需要手动刷新,但这不是我想要的。,c#,.net,async-await,uwp-xaml,C#,.net,Async Await,Uwp Xaml,如何等待加载所有图像 这是加载页面中的代码 rootObject = JsonConvert.DeserializeObject<Decode2Info>(text); foreach (Decode1Info info in rootObject.decodes) { info.LoadImage(); } collection = new ObservableCollection<Decode1Info>(rootObject.de
rootObject = JsonConvert.DeserializeObject<Decode2Info>(text);
foreach (Decode1Info info in rootObject.decodes)
{
info.LoadImage();
}
collection = new ObservableCollection<Decode1Info>(rootObject.decodes);
SListView.ItemsSource = collection;
progressView.IsActive = false;
因为它像JsonConvert.DeserializeObject一样导致了奇怪的事情,我把它放到了任务中,现在它工作了,这是我所期望的
rootObject = await Task.Run(() =>
{
return JsonConvert.DeserializeObject<Decode2Info>(text);
});
rootObject=等待任务。运行(()=>
{
返回JsonConvert.DeserializeObject(文本);
});
问题在于您没有等待LoadImage()
方法,因此在执行foreach
下面的代码时,它们不会完成。将该方法更改为此(因为您不能等待a作废)
然后这条线
info.LoadImage();
到
通过首先开始所有必需的LoadImage()
s,让它们同时运行,然后等待它们全部完成,您也有机会获得:
rootObject = JsonConvert.DeserializeObject<Decode2Info>(text);
List<Task> tasks = rootObject.decodes.Select(LoadImage);
await Task.WhenAll(tasks);
rootObject=JsonConvert.DeserializeObject(文本);
List tasks=rootObject.decodes.Select(LoadImage);
等待任务。何时(任务);
info.LoadImage();
await info.LoadImage();
rootObject = JsonConvert.DeserializeObject<Decode2Info>(text);
List<Task> tasks = rootObject.decodes.Select(LoadImage);
await Task.WhenAll(tasks);