我正在获取 Windows Phone 中的对象列表,并将它们显示在带有数据绑定的列表框中。某些图像 url 无效,因此在列表中添加每个对象后,我运行以下代码来检查和替换,如果无效
private void CheckLinkUrl(Person p)
{
Uri filePath = new Uri(p.img_url);
string correct = p.img_url;
HttpWebRequest fileRequest = HttpWebRequest.CreateHttp(filePath);
fileRequest.Method = "HEAD";
fileRequest.BeginGetResponse(result =>
{
HttpWebRequest resultInfo = (HttpWebRequest)result.AsyncState;
HttpWebResponse response;
try
{
response = (HttpWebResponse)resultInfo.EndGetResponse(result);
}
catch (Exception e)
{
p.img_url = "http://somethingelse.com/image.jpg";
}
}, fileRequest);
}
问题是它非常慢,加载每张图片有时需要 2 分钟以上(尽管 UI 保持响应,并且除了图片之外,其他所有内容都会立即显示在列表框中)
难道我做错了什么?我能让它跑得更快吗?
编辑:我尝试使用 imagefailed 事件并替换链接,加载图片的速度没有提高