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イベントを使用してリンクを置き換えようとしましたが、写真の読み込み速度は向上しませんでした