我得到Windows Phone中的對象列表,並使用數據綁定將它們顯示在列表框中。 一些圖像的URL是無效的,所以每一個對象被添加到列表中後,我運行下面的代碼來檢查,如果不更換,有效windows phone c#檢查有效的URL並替換列表中的foreach項
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事件和更換鏈接,在加載圖片
所以你想加快檢查本身,或者你想並行化他們?我建議你採取米蘭的指示,並設置默認圖像,這將保留空間,並給予初步的視覺提示。稍後,您可以輕鬆地替換圖像。 –
是的,我發現沒有其他辦法,我遵循米蘭的建議,謝謝! – user970012