0
我有一個圖片鏈接列表。現在我想循環瀏覽列表併爲每個鏈接下載圖片並在圖片中顯示。我的代碼下載並在循環中顯示圖片
private void bDownload_Click(object sender, RoutedEventArgs e)
{
string typedUrls = tbLinks.Text;
string source = getPageSource(typedUrls);
List<String> links = ExtractLinks(source);
string threadID = getThreadID(typedUrls);
for (int i = 0; i < links.Count; i++)
{
string path = downloadPic(links.ElementAt(i), threadID);
showPicture(path);
}
}
private void showPicture(string path)
{
var uri = new Uri(path);
iLatest.Source = new BitmapImage(uri);
}
當我運行它下載圖片,但只有最後一張圖片顯示。如何管理?
但你能告訴如何做到這一點?我已將downloadPic更改爲async並調用字符串path = await downloadPic(links.ElementAt(i),threadID),但它不能那麼簡單,因爲它仍然不起作用。 – korek 2015-02-10 00:37:46
@korek這應該至少有幫助...下載需要多長時間?它們的速度如此之快,即使它的異步只顯示最後一個?拋出一個'await Task.Delay(2000)'將有助於確認/否定 – BradleyDotNET 2015-02-10 00:40:15
加入延遲之後,它立即顯示圖片。但是,如果圖片很小,它的下載(或顯示)會更快,而Task.Delay會延長它。有沒有辦法「修復」? – korek 2015-02-10 00:45:34